窗口身份验证在MVC4中不起作用

时间:2014-02-25 20:01:43

标签: asp.net-mvc asp.net-mvc-4 authentication iis-7.5

方案

用户 A 可以访问MVC4网站中的所有页面,除了一个。但是用户 B 可以访问所有页面(没有限制)。

到目前为止我做了什么?

  1. 在IIS 7.5上部署了网站。
  2. 启用了窗口身份验证并禁用了IIS上托管网站的匿​​名身份验证。
  3. 测试网站。
  4. 测试结果 -

    (1)当用户B登录部署网站的同一系统(开发系统)时,他可以在没有提示对话的情况下访问该网站。

    (2)但是当相同的网站在服务器(生产系统)上发布时,网站仍会要求弹出凭据。

    ** 开发系统生产系统都位于同一个域中(我们将其命名为 domain.com )。

    问题

    为什么网站要求同一域中的同一用户提供凭据?

1 个答案:

答案 0 :(得分:7)

根据我对窗口身份验证的研究,我想总结以下行(也作为我的参考) -

(1)如果您已正确配置WA,则窗口身份验证(缩写词WA )将始终显示验证用户的提示。

在以下快照中启用匿名身份验证并启用 Windows身份验证

(2)即使将 NTLM 设置为 Kerberos (在IIS中)作为顶级提供商,IIS仍会要求提供Window凭据。快照显示了如何做到这一点。

How to set IIS Provider for Window Authentication

(3)如果您希望 避免在浏览器上显示提示 ,请按照步骤进行操作 -

(a)打开IE浏览器 - > 互联网选项 - > 安全标签。

(b)将网站添加到本地Intranet 区域,以便浏览器将登录的用户名和密码发送到IIS。

Add website to Intranet zone

注意 - 以上几点普遍适用于MVC和ASP.NET。

回答我的问题 为什么网站要求同一域中的同一用户提供凭据?

因为我在开发系统上设置了匿名身份验证以及Window身份验证。 (愚蠢的错误)