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
有人可以给我一些关于错误的提示吗?我做了很多研究,一个一个地解决了错误,但似乎我遇到了这个问题.
我还要感谢一些解释,为什么我会得到一个解决方案,因为我是一个新手.
提前致谢
尤利安
在同事的帮助下,我发现了问题所在.显然当我将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表单身份验证示例,一切都很顺利.
希望其他人会觉得这很有用.
谢谢
尤利安
| 归档时间: |
|
| 查看次数: |
2409 次 |
| 最近记录: |