3

我有一个使用 Active Directory 授权的 Web 项目(所有控制器都标有AuthorizeAttribute)。在 web.config 我有以下身份验证部分:

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

问题是:当我在 Visual Studio Development Server 下运行项目时一切正常,它会弹出授权窗口,输入登录名/密码后我可以看到所有站点内容。

但是,当我尝试在 IIS (7.5) 下运行它时,仍然会弹出授权窗口,但登录名/密码总是不正确(看起来它无法访问 AD)。站点配置为使用 Windows 授权。应用程序池使用我的 Windows 登录名/密码运行。我错过了什么?

4

2 回答 2

2

如果您的主机头文件指向 127.0.0.1,则可能是身份验证环回检查。

如果是这种情况,答案已经详细说明了为什么在 iis 7.5 / windows 7 / 的 asp.net 应用程序上 Windows 身份验证/模拟失败。总之,打开regedit,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa中添加一个DWORD DisableLoopbackCheck = 1。

于 2013-04-29T14:45:04.330 回答
1

我遇到了同样的问题,以下解决了我的问题:

  1. 选择网站
  2. 选择“功能视图”。
  3. 打开“身份验证”部分。注意:我假设您的网站已按照您的上述说明启用了 Windows 身份验证。
  4. 选择“ Windows 身份验证
  5. 在右侧的“操作”部分,单击提供程序。
  6. 现在从“ Providers ”弹出窗口中选择“ Negotiate ”并将其删除
  7. 刷新网站并运行

请让我知道它是否适合您。

于 2013-04-30T12:09:28.600 回答