【发布时间】:2016-02-09 13:37:01
【问题描述】:
我有一个托管在 Windows Server 2012 R2 上的 Intranet 站点,它运行良好。我在同一个站点上设置了多个应用程序,其中混合了 MVC 和 ASP 表单。但是由于某种原因,一个站点不会对移动设备或非域计算机的某些浏览器进行身份验证。
IOS 和 Android 设备均使用 Chrome 或 Android 设备上的默认浏览器或 IOS 设备上的 Safari。他们甚至都没有挑战用户名和密码。
我已尝试在两台设备上清除所有保存的密码并开始清理,但仍然会导致 401 未经授权的页面没有任何挑战。
在台式机上,此站点可在域计算机上正常运行,没有预期的挑战,在非域计算机上运行,但根据浏览器的不同,它会受到影响。 Chrome 和 IE 似乎可以工作,而 Firefox 则不行。 Firefox 显示了对根站点进行身份验证的相同行为,但甚至没有挑战子应用程序。注意:firefox 的行为在域和非域计算机之间是一致的。
我尝试梳理每个站点的 web.config 和 IIS 设置,唯一不同的是我使用的是不同的应用程序池,这个特定站点需要额外的权限,所以我有一个池新身份。
还有一点,在我的开发机器上调试站点时,我可以让所有设备和浏览器进行身份验证,只有在部署到发生此问题的服务器时。
编辑:我只做了一点调试,并创建了一个指向同一个文件夹的新应用程序,它可以工作。到目前为止,我不确定旧应用程序的问题是什么,但重新开始似乎已经奏效了。
【问题讨论】:
-
您是否启用了基本身份验证?并非所有浏览器或设备都可以使用 NTLM 身份验证进行身份验证。有些只能在没有 NTLM 的情况下发送密码明文。此外,检查设备是否需要通过代理。如果设备支持,某些代理可能会影响 NTLM 身份验证的功能。
标签: asp.net authentication iis