【问题标题】:Window's Authentication to access server访问服务器的 Windows 身份验证
【发布时间】:2015-12-18 15:35:17
【问题描述】:

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

401 未授权访问,访问被拒绝。

项目解决方案如下:

<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,然后进行协商。
  • Chrome 已将域列入白名单,还配置了 NTLM。
  • 点击取消登录后会出现401错误,否则会无限询问用户名和密码。

【问题讨论】:

  • 配置中的会员提供者有什么意义?它绝对与集成身份验证无关。
  • @WiktorZychla 所有文档都提到了它,集成身份验证的文档是什么,它作为我们的域用户自动登录?
  • 你可能误会了什么,会员资格提供者只与表单身份验证一起使用。在 Windows 身份验证的情况下,使用 ntlm/kerberos 没有显式配置。
  • 另外,请使用此清单wiktorzychla.com/2012/06/… 验证您的配置
  • @WiktorZychla 我会看一下,是的,如果我误解了,我会想要获得适当的文档来弥补我的知识差距。

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


【解决方案1】:

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

虽然配置看起来正确:

  • iis_iusrs 对目录的适当权限。
  • web.config 中设置 Active Directory 身份验证。
  • 确保 Internet 信息系统已全部禁用,除了 Window 的身份验证。

问题源于以下原因:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 2020-07-04
    • 1970-01-01
    • 2011-07-31
    • 2012-06-05
    • 1970-01-01
    • 2012-04-18
    相关资源
    最近更新 更多