2012-07-20 76 views
1

我被要求在WCF中創建一個服務,其中輸入是用戶EMAIL-ID。我的服務器中有很多可用的域。我的WCF服務託管在xxx域中。如何從WCF服務訪問活動目錄

I need to get all yyy groups (Domain groups) for the user whose email matches. 

問題: 1.我們可以連接到Active Directory從C# 2.如何從C#的用戶羣體。 3.它只是用於用戶驗證,與Active Directory無關。 (在AD組中簡單搜索)

由於我對此很陌生,即使我不知道它是否可以從C#中獲得。對此的早期回覆非常可觀。提前致謝。

回答

0

System.DirectoryServices.AccountManagement命名空間正是你所需要的。

下面是一些應該讓你開始的代碼。

using System; 
using System.DirectoryServices.AccountManagement; 

namespace TestADCSharp 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      PrincipalContext p = new PrincipalContext(
       ContextType.Domain, 
       "your.domain" 
      ); 

      UserPrincipal u = new UserPrincipal(p); 
      u.EmailAddress = "[email protected]"; 

      PrincipalSearcher ps = new PrincipalSearcher(u); 
      PrincipalSearchResult<Principal> results = ps.FindAll(); 

      foreach (Principal r in results) { 
       PrincipalSearchResult<Principal> groups = r.GetGroups(); 

       Console.WriteLine("Groups:"); 
       foreach (Principal g in groups) { 
        Console.WriteLine("\t" + g.Name); 
       } 
      } 
     } 
    } 
} 
+0

嗨bhamby,感謝代碼.. :)它給了我結果。但是當試圖執行GetGroups()時,它會引發錯誤「登錄失敗:未知用戶名或錯誤密碼」。你能指導我在哪裏給認證的憑據...非常感謝...乾杯 – BlueMoon 2012-07-20 22:22:21

+0

看看[在此](http://msdn.microsoft.com/en-us/library/bb341016.aspx )。 – bhamby 2012-07-20 22:29:09