【问题标题】:Basic authentication with ActiveDirectoryMembershipProvider使用 ActiveDirectoryMembershipProvider 进行基本身份验证
【发布时间】:2015-11-10 23:49:32
【问题描述】:

我试图让本地域中的用户通过托管在非域主机上的 iis/asp.net 应用程序从 ActiveDirectory 进行身份验证。

这是设置

  • 本地域 = MYDOMAIN
  • iis 主机 = 10.10.1.1(不在 MYDOMAIN 中)
  • ActiveDirectory LDAP 连接字符串 = LDAP://10.20.1.1/DC=MYDOMAIN,DC=local

web.config

<connectionStrings>
    <add name="ADConnectionString" connectionString="LDAP://10.20.1.1/DC=MYDOMAIN,DC=local" />
</connectionStrings>

...

<authorization>
  <allow users="*"/>
  <deny users="?"/>
</authorization>
<membership defaultProvider="ADMembershipProvider">
  <providers>
    <add
       name="ADMembershipProvider"
       type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
       connectionStringName="ADConnectionString"
       connectionUsername="MYDOMAIN\Administrator"
       connectionPassword="password"
       />
  </providers>
</membership>

iis 设置

  • 基本身份验证已启用
  • 禁用所有其他身份验证方法

但是通过这种设置,当在浏览器身份验证提示中输入凭据时,用户不会通过身份验证(用户名输入为MYDOMAIN\user - 没有MYDOMAIN\ 部分不会更改)。我什至没有看到 iis 连接到 AD 服务器 (10.20.1.1)

我做错了什么,如何调试这样的问题?

【问题讨论】:

    标签: asp.net iis active-directory basic-authentication


    【解决方案1】:

    IIS 中的基本身份验证不了解 ASP.NET 中的成员资格提供程序。如果你想这样做,那么你需要编写一个使用成员资格 API(ValidateUser、RoleProvider 等)的自定义基本身份验证模块。幸运的是,这样做非常容易,几年前我们写了一个关于如何做到这一点的示例,请参阅this了解端到端代码及其配置(请注意,对成员资格的调用已在示例中注释掉,但您可以取消注释该行):

    http://www.iis.net/learn/develop/runtime-extensibility/developing-a-module-using-net

    【讨论】:

    • 谢谢。那么您是否建议仅使用自定义身份验证模块才能完成不在 AD 域中的 IIS 主机的 AD 身份验证? IE。不能通过 web.config 配置来完成吗?我认为这是可能的基于serverfault.com/questions/48526/…
    • 没错,您链接到的帖子没有使用任何 IIS 配置,它使用的是 ASP.NET 成员资格提供程序,并且可能使用表单身份验证,而不是基本身份验证。如果您在 web.config 中使用表单身份验证,则可以使其工作,但是您的问题是关于基本身份验证的,并且只能通过自定义基本身份验证模块来完成。我想知道您的问题是否被错误地陈述了,您是否真的想要表单身份验证?
    • 我不想添加Forms Auth(基本上是为了避免添加额外的代码但配置)。那篇文章似乎表明他能够让 Basic Auth 与 AD 一起工作(答案的第一段),因此我的问题对我不起作用。我把你的作为微软的权威回答;)
    猜你喜欢
    • 1970-01-01
    • 2015-08-12
    • 2017-06-13
    • 2013-05-30
    • 1970-01-01
    • 2016-05-31
    • 2017-10-06
    • 2013-09-14
    • 2010-12-11
    相关资源
    最近更新 更多