0

摘要:管理ActiveDirectory for ASP.NET網站中角色的最佳方式是什麼?

我使用Active Directory爲我們域上的用戶對INTRAnet網站進行身份驗證。處理權限的最佳方式是什麼(管理員,主管,讀者)?

環境:

我是在Windows Server 2008 R2上使用ASP.NET C#(.NET框架4.5)網站與Visual Studio 2012和IIS 7.5。

我詳細問:

我試圖找出處理權限的最好辦法。我可能會將角色添加到我的項目的活動目錄中。該項目被稱爲鷹。我想知道是否應該將3個角色添加到AD中,並將它們稱爲EagleAdmin,EagleSupervisor和EagleReader),或者如果它應該在SQL Server中爲用戶創建我的權限(並且如果是這樣,那麼執行此操作的最佳方法是什麼?) 。

供參考:Here是輝煌的代碼項目,幫助我找出AD認證!

回答

0

您可以利用這些類的命名空間的System.DirectoryServices和System.DirectoryServices.AccountManagement

您可以使用System.DirectoryServices.AccountManagement.PrincipalContext類以訪問所需的Active Directory和利用UserPrincipal用於使用GroupPrincipal獲取用戶信息和角色的方法。

using(var context=new PrincipalContext(ContextType.Domain,"YOURDOMAINNAME") 
{ 
    using(var user=UserPrincipal.FindByIdentity(context,"usernametosearchfor") 
    { 
var userGroupsOfCurrentUser=user.GetAuthorizationGroups(); 
    } 
} 

請標記爲答案,如果它幫助你。

+0

感謝您的回覆 - 我已經這麼做了,我的問題是:設置訪問結構的最佳方式是什麼?我是否應該在EagleAdmin,EagleSupervisor,EagleReader的AD中創建3個角色,還是應該處理SQL Server中的不同權限級別? (如果是這樣,那麼最好的方法是什麼?) –

+1

這取決於你喜歡哪一個。兩者都可以工作。如果您在物理上需要組織用戶來處理角色,請使用基於Active Directory的分組方法。如果您將在代碼中處理角色,那麼您可以選擇面向數據庫的方式。 –

+0

感謝Ananthan--我會將你的標記作爲答案,但我不確定我是否可以從評論中做到這一點。謝謝。我很高興能夠在AD內使用這些角色,但是我越想到它,它就越是過分,並且使維護變得更加困難。 –

相關問題