在公共ASP.NET网站上获取Windows用户名

时间:2011-04-06 15:43:40

标签: asp.net-mvc windows iis windows-authentication

我正在发布一个公共ASP.NET网站。我假设访问者正在使用Windows和Internet Explorer。我想在首页上显示Windows用户名,是否可以?

我已经在IIS中启用了Windows身份验证,在开发环境中,一切正常。在生产时,它不断询问Windows登录凭据。

2 个答案:

答案 0 :(得分:1)

对于Windows身份验证,用户必须提供可以对运行网站的服务器/域进行身份验证的凭据。如果客户端在同一域中运行并经过身份验证,Internet Explorer将自动处理凭据交换;这就是它在开发环境中工作的原因。但是,从公共端访问时,Internet Explorer会尝试移交用户当前使用的凭据(某些其他Windows域),但这些凭据无法对您的服务器进行身份验证,因此IE会提示用户输入可以进行身份​​验证的凭据到那个域。

答案 1 :(得分:0)

如果它是一个公共网站,那么你不能这样做。为什么?因为您需要针对AD验证用户凭据,而不能在公共网页上执行此操作。 (这完全有道理,毕竟你怎么知道我不是谁?)

如果您在内部网络中执行此操作,其中每个帐户都在您的Active Directory中,那么人们只需将该网站添加到IE中的可信站点或本地网络区域,以便NTLM透明地工作。