AD LDS w/ASP.NET表单身份验证

Iul*_*ies 2 asp.net forms-authentication

我开始这个例外:

分析器错误消息:连接字符串中指定的容器不存在

这是我的情况:

我有一个WebApp,有2页Default.aspx和Login.aspx.后者包含登录控件.应用程序配置为使用AD LDS实例作为成员资格存储.

以下是web.config中感兴趣的部分内容

  <authentication mode="Forms">
    <forms name=".AuthCookie" loginUrl="Login.aspx" timeout="10" />
  </authentication>
  <authorization>
    <deny users="?" />
    <allow users="*" />
  </authorization>
  <membership defaultProvider="MyDSProvider">
    <providers>
      <add name="MyDSProvider" 
           type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
           applicationName="ADSecWebApp"
           connectionStringName="MyDSConn"
           connectionUsername="CN=Admin,CN=Users,CN=MyOrg,DC=MyDomain,C=CA"
           connectionPassword="Welcome1"
           connectionProtection="None"
           />
    </providers>
  </membership>
Run Code Online (Sandbox Code Playgroud)

然后我在我的机器上安装了AD LDS的一个实例.

AD LDS配置为具有一个应用程序分区"CN = MyOrg,DC = MyDomain,C = CA".

在这个分区下我创建了一个容器"CN = Users,CN = MyOrg,DC = MyDomain,C = CA"

在这个容器下我创建了两个用户:Admin和JohnS.两者都启用并设置了密码(如果是"Admin",则为"Welcome1")

此外,Admin被配置为"CN = Administrators,CN = Roles,CN = MyOrg,DC = MyDomain,C = CA"的成员(我在网上发现了一些文章,建议在ADMembershipProvider配置中使用connectionProtection ="None"时然后,不能使用部分和Windows帐户,而应使用对用于连接的AD实例具有管理权限的AD帐户.)

此外,我有Windows 7,IIS7,VS 2008 SP1,.NET 3.5

有人可以给我一些关于错误的提示吗?我做了很多研究,一个一个地解决了错误,但似乎我遇到了这个问题.

我还要感谢一些解释,为什么我会得到一个解决方案,因为我是一个新手.

提前致谢

尤利安

Iul*_*ies 5

在同事的帮助下,我发现了问题所在.显然当我将Admin AD用户添加到AD Administors Role(=> CN-Roles => CN-Administrators => Properties => select {member} =>单击Add DN => add my Admin user)时我错过了保存或者别的东西出了问题; 无论哪种方式,我的管理员用户都没有保存为管理员成员.

我使用ldp.exe找到问题的原因:从某种意义上说,我能够连接到我的实例,然后将会话绑定到我的CN = Admin用户,虽然我在树视图中看不到任何内容向我们暗示CN = Admin它仍然不是管理员.

还有一件事情遗漏了:我必须设置我想要登录到我的安全webapp的帐户的userPrincipalName,导致我在创建AD帐户时使用的名称CN = JohnS在验证时不会被ActiveDirectoryMembershipProvider实际使用用户.我使用了一个名为john.smith@mail.com的电子邮件来获取userPrincipalName,这实际上应该用于登录Web应用程序.

毕竟,使用我的AD LDS和ASP.NET表单身份验证示例,一切都很顺利.

希望其他人会觉得这很有用.

谢谢

尤利安