對不起,如果之前已詢問過此問題,但我已搜索Google和此網站,但無法找到針對初學者的完整工作。我試圖編寫一個登錄頁面,使用ASP.NET 2對活動目錄組進行身份驗證。我發現了各種文章,但他們似乎都缺乏新手的關鍵信息。我設法拼湊了一個登錄頁面,它可以與幾個活動目錄登錄一起工作,但我無法將其限制爲僅限屬於特定活動目錄組成員的用戶。 我的web.config包含以下內容:使用ASP.NET 2中的活動目錄組登錄表單
<connectionStrings>
<add name="ADConnectionString" connectionString="LDAP://domainname.local/DC=domainname,DC=local" />
</connectionStrings>
<authentication mode="Forms">
<forms
loginUrl="Login.aspx"
name=".ADAuthCookie" timeout="1000" />
</authentication>
<authorization>
<allow roles="DOMAINNAME\group"/>
<deny users="?"/>
</authorization>
<membership defaultProvider="MyADMembershipProvider">
<providers>
<add name="MyADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider,
System.Web, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
attributeMapUsername="sAMAccountName"/>
</providers>
</membership>
我有匿名的真實域名,但我相信這部分工作,它讓我登陸,如果我使用:
<allow roles="DOMAINNAME\username"/>
<deny users="?"/>
的其餘部分項目由具有WebControls.Login控制和在Page_Load函數以下一個Default.aspx頁面一個頁面的Login.aspx的證明登錄已工作:
Response.Write("Hello, " + Server.HtmlEncode(User.Identity.Name));
我已經試過
<allow roles="DOMAINNAME\group"/>
<deny users="*"/>
但這似乎否認每個人。
我錯過了什麼?
下面的文章將描述你在找什麼? http://msdn.microsoft.com/en-us/library/ff649227.aspx –
感謝文章@ miika-l,它仍然有一些差距 - 我已經設法克服大部分但仍然不能瞭解如何只允許訪問指定活動目錄組中的用戶。看起來我應該可以從web.config中的節點或通過在Application_AuthenticateRequest函數中迭代組列表來完成它,但我不知道如何執行。任何指針? 我也嘗試了ASP.NET 2版本的文章http://msdn.microsoft.com/en-us/library/ff650308.aspx但有類似的問題。 –
nigelhooper
在第四步中,他們構建了用戶所屬的所有組的字符串。因此,您可以修改此函數以搜索您正在查找的組,或者只搜索該函數返回的字符串,就像它在doc中一樣(「GetGroups方法將返回組列表作爲管道分隔字符串」) 。這個方法與web.config設置沒有任何關係,但是,如果你真的設置了這個方法? –