2010-01-19 41 views
2

我剛開此異常:AD LDS W/ASP.NET表單驗證

分析器錯誤信息:在連接字符串中指定的容器不存在

而且here`s我的情況:

我有一個2頁的WebApp Default.aspx & Login.aspx。後者包含一個登錄控件。 該應用程序被配置爲使用AD LDS實例作爲成員資格存儲。

這裏有一些感興趣的章節中

<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> 

然後,我在我的機器上安裝AD LDS實例的web.config文件。

AD LDS配置爲具有一個應用程序分區「CN = MyOrg,DC = MyDomain,C = CA」。

在此分區我創建了一個容器 「CN =用戶,CN = MYORG,DC = MYDOMAIN,C = CA」

在該容器予創建了兩個用戶:管理員& JOHNS。兩者都啓用並設置了密碼(「Admin1」情況下爲「Welcome1」)

此外,管理員被配置爲「CN =管理員,CN =角色,CN = MyOrg,DC = MyDomain,C = CA「 (我在網上發現了一些文章,提示當在ADMembershipProvider配置部分中使用connectionProtection =」None「時,則無法使用Windows帳戶,而應該使用對AD實例具有管理權限的AD帳戶連接。)

而且我的Windows 7,IIS7,VS 2008 SP1,.NET 3.5

有人可以給我什麼是錯的一些提示?我做了很多研究,逐個解決了錯誤,但似乎我被這個問題困住了。

我也很感激一些解釋,爲什麼如果我給我一個解決方案,因爲我是一個新手。

在此先感謝

尤利安

回答

5

與同事幫助我發現什麼問題。顯然,當我將我的管理員AD用戶添加到AD管理員角色(=> CN-角色=> CN-管理員=>屬性=>選擇{成員} =>單擊添加DN =>添加我的管理員用戶)我錯過了保存它們或其他事情出錯了;無論哪種方式我的管理員用戶沒有保存爲管理員成員。

我使用ldp.exe找到問題的原因:從某種意義上說,我能夠連接到我的實例,然後將會話綁定到我的CN = Admin用戶,儘管我看不到任何東西它暗示我們CN = Admin的樹視圖仍然不是管理員。

還有一件事被遺漏了:我必須設置我想要登錄到我的安全webapp帳戶的userPrincipalName,導致創建AD帳戶時使用的名稱CN = JohnS實際上並未被ActiveDirectoryMembershipProvider驗證用戶時。我使用了名字[email protected]作爲userPrincipalName的電子郵件,這實際上是用來登錄Web應用程序的。

畢竟這一切都很好,我的AD LDS & ASP.NET窗體身份驗證示例。

希望別人會發現這個有用。

感謝

尤利安