用于访问服务器的窗口验证

时间:2015-12-18 15:35:17

标签: c# asp.net asp.net-mvc active-directory

我有一个项目,我已将我的应用程序配置为使用Window的身份验证。所有其他形式的连接都被禁用,它们必须是我们域的一部分才能连接到此应用程序。但问题是,有些用户虽然有一部分域名无法访问该应用程序。它们收到Internet信息系统中指定的以下通用401错误。

  

401 Unauthorized Access,访问被拒绝。

项目解决方案具有以下内容:

<authentication mode="Windows"></authentication>
<membership defaultProvider="ADMembership">
     <providers>
          <add name="ADMembership" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicToken=b03f5f7f11d50a3a" connectionStringName="ADConnection" connectionUsername="domain/user" connectionPassword="password" />
     </providers>
</membership>

ADConnection是有效的Active Directory connectionString。我确信,当我查询时,上面的代码包含在我的system.Web中。为什么域中的某些用户正确登录,而其他用户可以正确登录

附加说明:

  • IIS配置为尝试NTLM,然后是Negotiate。
  • Chrome已将域列入白名单,并且还配置了NTLM。
  • 在点击取消登录后会发生401错误,否则会无限地询问用户名和密码。

1 个答案:

答案 0 :(得分:0)

几个小时后,我找到了罪魁祸首。

虽然配置显示正确:

  • iis_iusrs 目录的正确权限。
  • web.config
  • 中设置Active Directory身份验证
  • 确保互联网信息系统已全部禁用,但Window的身份验证除外。

问题源于以下几点:

经过身份验证的用户,该特定角色无权访问该目录。因此,一旦用户登录,该角色将取代其他权限,而不允许他们访问应用程序。一旦该角色具有读取访问权限,则身份验证按预期工作。