C# 如何在不登录的情况下检查用户的域名
我有一个MVC5应用程序,它使用OWIN和identity2.0进行身份验证。 我的应用程序需要混合身份验证:C# 如何在不登录的情况下检查用户的域名,c#,asp.net-mvc,active-directory,owin,windows-authentication,C#,Asp.net Mvc,Active Directory,Owin,Windows Authentication,我有一个MVC5应用程序,它使用OWIN和identity2.0进行身份验证。 我的应用程序需要混合身份验证: 对于不是域的用户,比如说“dom1”,他们应该看到一个基于表单的页面 对于域“dom1”上的用户,他们应该通过windows身份验证登录 我想知道当用户第一次点击我的帐户/登录操作时,如何在没有身份验证的情况下获取用户的域名 我使用了: PrincipalContext pcontext = new PrincipalContext(ContextType.Domain); var
- 对于不是域的用户,比如说“dom1”,他们应该看到一个基于表单的页面
- 对于域“dom1”上的用户,他们应该通过windows身份验证登录
帐户/登录
操作时,如何在没有身份验证的情况下获取用户的域名
我使用了:
PrincipalContext pcontext = new PrincipalContext(ContextType.Domain);
var domainName = pcontext.ConnectedServer;
及
但是这两个都显示了部署网站的机器的域名,而不是客户端的域名
非常感谢您的帮助,如果我犯了任何错误,请纠正我。您可以在这里看到域名
Environment.UserDomainName
获取与当前用户关联的网络域名
根据:
UserDomainName属性首先尝试获取当前用户的Windows帐户名的域名组件。如果尝试失败,此属性将尝试获取与UserName属性提供的用户名关联的域名。如果由于主机未加入域而导致尝试失败,则返回主机名
如果您没有经过身份验证,很遗憾,您会看到主机名。据我所知,没有办法解决这个问题
您还可以在此处获取客户端请求的ip
HttpRequest.UserHostAddress
这个领域可以在这里看到
Environment.UserDomainName
获取与当前用户关联的网络域名
根据:
UserDomainName属性首先尝试获取当前用户的Windows帐户名的域名组件。如果尝试失败,此属性将尝试获取与UserName属性提供的用户名关联的域名。如果由于主机未加入域而导致尝试失败,则返回主机名
如果您没有经过身份验证,很遗憾,您会看到主机名。据我所知,没有办法解决这个问题
您还可以在此处获取客户端请求的ip
HttpRequest.UserHostAddress
“未经认证”?你不能。必须先完成Windows身份验证,然后才能查看用户的帐户
这是因为Windows身份验证的工作方式:
您的应用程序只能在第5步看到有关用户帐户的任何信息—在身份验证成功完成后。否,我需要的是域名而不是IP地址。
环境。UserDomainName
获取与当前用户关联的网络域名。否,它还返回服务器的域名。。。您测试的服务器和用户的域名是否可能相同“与当前用户关联的网络域名。”不,我需要域名而不是IP地址。环境。UserDomainName
获取与当前用户关联的网络域名。不,它还返回服务器的域名。。。您测试的服务器和用户的域名是否可能相同“与当前用户关联的网络域名。”