【问题标题】:Window authentication not working in MVC4窗口身份验证在 MVC4 中不起作用
【发布时间】:2014-02-25 20:01:43
【问题描述】:

场景

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

到目前为止我做了什么?

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

测试结果 -

(1) 用户B登录网站所在系统(开发系统)时,无需提示对话框即可访问网站。

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

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

问题

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

【问题讨论】:

  • 两个用户都是“域”用户帐户吗?
  • @mxmissile 要在两个系统上登录,我使用相同的凭据和相同的域。例如域\XYZ(登录名)和 Pass1234(密码)。
  • 你能检查一下当你发布网站并且属性 authPersistNonNTLM 设置为 true 时 web.config 是否被转换
  • @Overmachine 不! web.config 在发布时没有改变。而且没有你提到的那种属性。

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


【解决方案1】:

根据我对 Window Authentication 的研究,我想总结以下几行 (也作为我的参考) -

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

在下面的快照中查看匿名身份验证禁用和windows身份验证启用。

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

(3)如果您想避免在 WA 浏览器上显示提示,请按照以下步骤操作 -

(a) 打开 IE 浏览器 --> Internet 选项 --> 安全 选项卡。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 2012-10-04
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多