【发布时间】:2011-04-06 15:43:39
【问题描述】:
我正在发布一个公共 ASP.NET 网站。我假设访问者使用的是 Windows 和 Internet Explorer。我想在首页显示Windows用户名,可以吗?
我已经在 IIS 和开发环境中启用了 Windows 身份验证,一切正常。在生产中,它会不断询问 Windows 登录凭据。
【问题讨论】:
标签: asp.net-mvc windows iis windows-authentication
我正在发布一个公共 ASP.NET 网站。我假设访问者使用的是 Windows 和 Internet Explorer。我想在首页显示Windows用户名,可以吗?
我已经在 IIS 和开发环境中启用了 Windows 身份验证,一切正常。在生产中,它会不断询问 Windows 登录凭据。
【问题讨论】:
标签: asp.net-mvc windows iis windows-authentication
对于 Windows 身份验证,用户必须提供可以对运行网站的服务器/域进行身份验证的凭据。如果客户端在同一个域中运行并经过身份验证,Internet Explorer 将自动处理凭据交换;这就是它在开发环境中工作的原因。但是,当从公共端访问时,Internet Explorer 会尝试交出用户当前正在使用的凭据(某些其他 Windows 域),但这些凭据无法对您的服务器进行身份验证,因此 IE 会提示用户输入可以进行身份验证的凭据到那个域。
【讨论】:
如果它是一个公共网站,那么你就不能这样做。为什么?因为您需要针对您的 AD 验证用户凭据,而您无法在公共网页上执行此操作。 (这完全有道理,毕竟你怎么知道我是谁?)
如果您在每个帐户都在您的 Active Directory 中的内部网络中执行此操作,那么人们只需将该站点添加到其受信任的站点或 IE 中的本地网络区域,NTLM 就可以透明地工作。
【讨论】: