7

我试图在我的.NET 4.0 MVC3 Web应用程序中设置Windows身份验证,因此公司内部网用户可以登录而不会出现提示。Windows身份验证不起作用

在web.config中,我有:

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

在整个Web应用程序IIS我禁用匿名访问,并且只留下Windows身份验证检查。我在Windows 2003上使用IIS 6.0.

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

当我从USER \ SOMESERVER访问站点时,我按照预期登录为USERS。所有其他人试图从他们的计算机访问我的应用程序会得到提示输入用户名和密码(但他们可以在提供有效凭证时登录)。这尤其奇怪,因为它们都在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。他们描述的问题完全一样。该解决方案也有效。唯一仍然存在的问题是,从我的开发机器中,我仍然自动以错误的用户身份登录。幸运的是,所有客户机都以当前用户身份登录。

+1

这听起来像你在IIS中模拟安装。 – 2012-02-28 14:54:52

+1

你是如何得到它登录的用户名?你有没有在你的代码中的任何地方引用错误的用户?当其他用户得到提示输入用户名和密码时,他们是否可以登录或拒绝他们的授权?显而易见的问题是,所有用户都在同一个域名上? ;-) – Chris 2012-02-28 14:56:16

+0

他们可以自己登录,然后在用户部分中显示正确的用户名。我没有任何对错误用户的引用,也没有在web.config中配置模拟。我从'User.Identity.Name'获取用户名 – 2012-02-28 15:04:39

回答

0

我GOOGLE了一下,发现这个:http://forums.iis.net/t/1167087.aspx。重新启动服务器确实解决了问题。可悲的是,我们仍然不知道是什么原因导致它...