2011-05-30 100 views
2

我有asp.net web應用程序,如何檢查當前登錄的用戶(客戶端)是否在特定的Active Directory組中。 謝謝asp.net web應用程序 - 檢查用戶是否存在於Active Directory組中

+0

很好的答案,但未來的參考收到{「未知錯誤(0x80005000)」}實施。通過將域添加到以下行來修復:var pc = new PrincipalContext(ContextType.Domain,Environment.UserDomainName); – 2013-02-07 03:29:59

回答

3

請嘗試以下方法。只需根據自己的需要改變它...

public List<string> GetGroupNames(string userName) 
{ 
    var pc = new PrincipalContext(ContextType.Domain); 
    var src = UserPrincipal.FindByIdentity(pc, userName).GetGroups(pc); 
    var result = new List<string>(); 
    src.ToList().ForEach(sr => result.Add(sr.SamAccountName)); 
    return result; 
} 
+0

嗨Leniel,謝謝你的快速回復。我只是複製你的代碼運行在簡單的web應用程序上。這給了一個錯誤 - {「未知的錯誤(0x80005000)」},我錯過了什麼? – Yogesh 2011-05-30 16:11:12

+0

@Yogesh:檢查此:http://www.lansweeper.com/forum/yaf_postsm8519_Active-directory-computer-lookup-Unknown-error-0x80005000.aspx這是一個相當廣泛的錯誤。如果您在Google中搜索此未知錯誤,您會遇到很多可能的問題... – 2011-05-30 16:17:07

+1

這需要** .NET 3.5 **或更高版本 - 不適用於2.0或3.0。另外:Web應用程序正在運行的用戶需要具有至少讀取AD的權限。 – 2011-05-30 16:20:56

1

試試這個(只適用於ASP.NET,但類似的調用可用於Windows應用程序)

if (HttpContext.Current.User.IsInRole("RoleName")) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 

希望這有助於
哈維Sather

相關問題