我创建了一个 MVC 应用程序并将其部署到 Azure VM 上的 IIS 8.5。我在 Web.Config 中指定了 authentication mode=Windows ,在 IIS 上指定了 Basic Authentication。到目前为止,一切都如宣传的那样。
然后当我导航到 Chrome 和 Firefox 中的应用程序时,系统提示我输入用户名/密码,输入凭据,这也成功了。
但是当我导航到 IIS 中的应用程序时,我没有提示输入凭据,而是收到带有以下消息的 401.2 响应: HTTP 错误 401.2 - 未经授权。由于身份验证 header 无效,您无权查看此页面。
我已经比较了 Fiddler 中的请求和响应。它们在 401.2 中基本相同,但 Chrome 和 FF 然后提示输入凭据,而 IE 仅显示错误。
当我在 IIS 上将基本身份验证更改为匿名时,导航成功。我曾尝试暂时赋予应用程序池完全控制权,但没有成功。
WindowsAuthentication 和 WindowsAuthenticationModule 都已加载,并且我已经在 IIS 中设置了默认域和领域。
有什么想法吗?
最佳答案
我会尝试 Internet 选项中有两个设置。在 Internet 选项的安全选项卡(IE -> 工具/齿轮图标 -> Internet 选项)中,为您的设置选择适当的区域,然后转到自定义级别...选项。一直向下滚动到用户身份验证并确保未选择匿名登录。我相信任何其他设置都应该有效,但我总是提示。
对于您的用例,第一个设置应该足够了,但是如果您尝试使用不同的来源(即托管您的页面的服务器不同)进行身份验证,那么您可能需要查看杂项 -> 跨域访问数据源设置并将其更改为启用。
关于internet-explorer - 基本认证 : IE 11 Does Not Prompt for Credentials - Chrome and FF Do,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35972147/