[英]How to check domain name of user without logging in
我有一个使用OWIN和identity2.0进行身份验证的MVC 5应用程序。 我的应用程序需要混合身份验证:
我想知道在用户首次点击我的“ Account/Login
操作时如何获取未经身份验证的用户的域名。
我用过 :
PrincipalContext pcontext = new PrincipalContext(ContextType.Domain);
var domainName = pcontext.ConnectedServer;
和
System.Security.Principal.WindowsIdentity context = System.Security.Principal.WindowsIdentity.GetCurrent();
var domainName = pcontext.Name;
但是这两个都显示了部署网站的计算机的域名,而不是客户端域的域名。
非常感谢您的帮助,如果我有任何失误,请纠正我。
域名可以在这里看到
Environment.UserDomainName
获取与当前用户关联的网络域名。
根据MSDN文档 :
UserDomainName属性首先尝试获取当前用户的Windows帐户名的域名部分。 如果该尝试失败,则此属性尝试获取与UserName属性提供的用户名关联的域名。 如果由于主机未加入域而导致尝试失败,则返回主机名。
如果您未通过身份验证,则将不幸地看到主机名。 我无法解决这个问题。
您还可以在此处获取客户端请求的IP
HttpRequest.UserHostAddress
“没有身份验证”? 你不能 必须先完成Windows身份验证,然后才能看到用户的帐户。
这是由于Windows身份验证的工作原理:
在身份验证成功完成之后,您的应用程序唯一可以看到有关用户帐户的任何信息的时间是在步骤5。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.