【问题标题】:Windows authentication does not workWindows 身份验证不起作用
【发布时间】:2012-03-18 01:17:05
【问题描述】:

我正在尝试在我的 .NET 4.0 MVC3 Web 应用程序中设置 Windows 身份验证,以便公司内网用户无需提示即可登录。

在 web.config 我有:

<authentication mode="Windows" />
<authorization>
  <deny users = "?" />
</authorization>

在 IIS 中,我禁用了整个 Web 应用程序的匿名访问,只检查了 Windows 身份验证。我在 Windows 2003 上使用 IIS 6.0。

现在,当我从 USER\COMPUTER 访问该站点时,我在没有提示的情况下登录,但作为错误用户(不是我自己,而是 Web 应用所在服务器的管理员帐户运行)。

当我从 USER\SOMESERVER 访问该站点时,正如预期的那样,我以用户身份登录。所有其他尝试从他们的计算机访问我的应用程序的人都会收到输入用户名和密码的提示(但他们可以在提供有效凭据时登录)。这特别奇怪,因为它们都在IE设置中打开了集成的Windows身份验证,并且将*.domain.intra添加到了Intranet站点。

有人知道发生了什么吗?我怎样才能让它工作,让用户在没有提示的情况下以自己的身份登录?

编辑:Web 应用程序池作为 NETWORK SERVICE 运行,所以我不明白为什么我在我的开发机器上以错误用户身份登录...

EDIT2:由于我使用 NETWORK SERVICE 作为应用程序池的标识,因此我按照此处的解决方法步骤操作:http://support.microsoft.com/kb/871179。但是还是不行……

所有用户和机器都属于同一个域

EDIT3:我发现了这个:http://forums.iis.net/t/1167087.aspx。他们描述的问题完全一样。该解决方案也有效。唯一仍然存在的问题是,在我的开发机器上,我仍然以错误的用户身份自动登录。幸运的是,所有客户端计算机都以当前用户身份登录。

【问题讨论】:

  • 听起来你在 IIS 中设置了模拟。
  • 您是如何获得登录时使用的用户名的?您的代码中是否有任何对错误用户的引用?当其他用户收到输入用户名和密码的提示时,他们可以登录还是拒绝他们的授权?显而易见的问题是,所有用户都在同一个域上吗? ;-)
  • 他们可以自己登录,然后在用户部分中也会显示正确的用户名。我没有对错误用户的任何引用,也没有在 web.config 中配置模拟。我从User.Identity.Name获得用户名
  • 是的,所有用户都在同一个域中。
  • 个人用户是否都具有对包含该站点的文件夹(和子文件夹)的读取权限?

标签: asp.net .net asp.net-mvc-3 authentication windows-authentication


【解决方案1】:

我用谷歌搜索了一下,发现了这个:http://forums.iis.net/t/1167087.aspx。重启服务器确实解决了这个问题。可悲的是,我们仍然不知道是什么原因造成的......

【讨论】:

    猜你喜欢
    • 2017-09-24
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2013-08-26
    • 1970-01-01
    相关资源
    最近更新 更多