tha*_*ili 12 c# vb.net asp.net authentication active-directory
我正在尝试设置我的本地asp.net Web应用程序以使用LDAP连接字符串(活动目录域控制器)进行用户身份验证.
LDAP连接字符串指向可通过我正在使用的VPN连接访问的活动目录域控制器.我也在使用一些公共LDAP目录进行测试.
我已经将IIS(7)部署到我的本地工作站.我也按照此处的说明操作,并创建了一个简单的Active Directory表单身份验证应用程序.
我正在尝试将我的用户验证到4个不同的LDAP服务器(2个AD,2个非AD)
以下是我的一些部分web.config:
<connectionStrings>
<!--<add name="ADConnectionString1" connectionString="LDAP://x01.x02.x03.x04:389/DC=NPAPAN,DC=local" />--> <!-- Active Directory in VPN1 -->
<add name="ADConnectionString4" connectionString="LDAP://y01.y02.y03.y04:389/DC=corporate,DC=mycompany,DC=com"/> <!-- Active Directory in VPN2 -->
<!--<add name="ADConnectionString2" connectionString="LDAP://ldap.forumsys.com:389/dc=example,dc=com"/>--> <!-- LDAP server 1 public -->
<!--<add name="ADConnectionString3" connectionString="LDAP://zflexldap.com:389/dc=example,dc=com"/>--> <!-- LDAP server 1 public -->
</connectionStrings>
...
<authentication mode="Forms">
<forms
name=".ADAuthCookie"
timeout="10" requireSSL="false" protection="None"/>
</authentication>
....
<membership defaultProvider="MyADMembershipProvider">
<providers>
<!--<add name="MyADMembershipProvider1"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
connectionUsername="NPAPAN\testadmin"
connectionPassword="zzzzzzz"
attributeMapUsername="sAMAccountName"/>-->
<add name="MyADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
connectionUsername="CORPORATE\_ADMIN_USER"
connectionPassword="cccccccc"
attributeMapUsername="sAMAccountName" />
<!--<add name="MyADMembershipProvider2"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
connectionUsername="cn=read-only-admin,dc=example,dc=com"
connectionPassword="password"
attributeMapUsername="uid" />-->
<!--<add name="MyADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString3"
connectionUsername="cn=ro_admin,ou=sysadmins,dc=zflexsoftware,dc=com"
connectionPassword="zflexpass" />-->
</providers>
</membership>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
...
Run Code Online (Sandbox Code Playgroud)
我使用的代码是示例应用程序链接上使用的代码.
我可以使用LDAP浏览器使用上面代码中列出的信息(LDAP URL,端口,基本DN connectionUsername,connectionPassword)来浏览AD .
从IIS Web应用程序中,我只能为VPN 1 Active Directory绑定和验证用户.
在VPN 2 Active Directory的情况下,我得到:
无法与服务器建立安全连接
我无法在两种情况下绑定+验证用户,接收:
无法与服务器建立安全连接
在这两种情况下,LDAP服务器都使用非AD标准对象属性,如下所示:
所以在第一种情况下,我试图通过以下方式映射用户登录名:
attributeMapUsername="uid"
Run Code Online (Sandbox Code Playgroud)
显然它没有用.
我的问题如下:
A)在第二种情况下,我无法绑定到VPN2 AD,我可以ping和远程控制AD控制器.我也可以使用LDAP浏览器连接到AD控制器.我想知道AD控制器或其他东西是否可以阻止来自我本地IIS的请求.怎么了?
B)我可以使用ActiveDirectoryMembershipProvider绑定和使用所有类型的LDAP V3服务器吗?
如果是这样我在这里错过了什么?
尝试将您的应用程序池身份更改为具有 Active Directory 访问权限的某个服务帐户