IIS7 + ASP.NET模拟+ Windows身份validation= 401未经授权

我有一个asp.net应用程序,它依赖于Request.LogonUserIdentity.Name来填充login到客户端机器上的用户名。 在networking服务器上的IIS7中,我禁用了Anonymous Authentication并启用了ASP.NET ImpersonationWindows Authentication 。 (我用一个服务帐户login到web服务器,而不是我自己的。)当我尝试从我的桌面浏览到网站时,系统提示input失败的networking凭证 – 401 Unauthorized... 我正在使用.net 3.5 SP无论如何。 服务器正在运行IIS 7.5。

应用程序池:

  • pipe理pipe道模式: 经典
  • 加载用户configuration文件: false
  • 身份: ApplicationPoolIdentity

Web应用程序:

  • .NET身份validation规则: 允许所有用户
  • 启用身份validationtypes: ASP.NET模拟,Windows

文件系统文件夹权限:

  • 创作者所有者: 特殊权限
  • Machine \ IUsr: 读取和执行,列出文件夹内容,读取
  • 机器\系统: 完全控制
  • 我的域帐号: 完全控制
  • 机器\pipe理员: 完全控制
  • Machine \ Users: 读取和执行,列出文件夹内容,读取
  • Machine \ IIS_IUSRS: 读取和执行,列出文件夹内容,读取
  • 可信安装程序: 完全控制

我已经尝试添加阅读和完全控制joinMachine\Everyon e和Domain\Domain Users ,我仍然被阻止。

在服务器本地testing时,这很可能来自loopbackcheck。 我敢打赌,如果你从另一台服务器上testing它,它就可以运行

closures使用方法2从这个页面回送检查: http : //support.microsoft.com/kb/896861 。 您的更改不需要重新启动。

至于权限,启用模拟将需要经过身份validation的用户,再加上应用程序池用户将需要一些东西。 因此,要使用的密钥权限是SYSTEM,Administrators,“IIS APPPOOL \ {apppoolname}”以及可能用于进行身份validation的用户组。

在IIS 7.5中打开Windows身份validation时,对于提供程序也有一个选项。 默认情况下,协商是第一首选项,然后是NTLM。 我已经看到由于其他设置相关问题而导致谈判失败的问题,然后向用户提供凭证质询。 我已经能够通过使NTLM成为第一个提供者来解决这个问题。

您还可以使用提琴手查看网站stream量,以查看在获取凭据时遇到的情况。