0

我正在編寫一個Web應用程序,我試圖驗證管理員用戶。我希望通過在服務器上添加一個本地組來添加域用戶來做到這一點。我有一個名爲ProductionManagers的組,我添加了具有管理員權限的人員。其他用戶具有僅查看權限。特定計算機中組的用戶成員?

我想要做的是搜索查詢服務器上的AD(正確?),並確定當前登錄的用戶是否爲ProductionManagers組的成員(它是服務器上的組,而不是域組)。

這樣做的最好方法是什麼?或者,也許你有一個更好的機制建議,而不是讓我添加管理員的本地組織?

回答

0

如果使用ASP.NET和形式的認證,

WindowsPrincipal principal = new WindowsPrincipal(new WindowsIdentity("[email protected]")); 
if (principal.IsInRole("ProductionManagers")) 
{ 
    // Authenticated 
} 

如果使用ASP.NET和Windows身份驗證,

WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); 
if (principal.IsInRole("ProductionManagers")) 
{ 
    // Authenticated 
} 

如果用別的東西像Java,PHP,Ruby中,你需要調用.NET API或Win32 API來做到這一點。您不能簡單地通過LDAP查詢來檢索該信息。原因是本地組的組成員信息實際上存儲在本地計算機上,而不是該Active Directory。

您需要調用諸如NetLocalGroupGetMembers之類的東西以從本地存儲檢索組成員資格信息。

+0

謝謝。我會試試看。不幸的是,我現在離開了這個項目。希望我能再花點時間再努力:) – AndersLindas