2015-12-23 48 views
-1

我發現一個域下的組可以查看用戶輸入的組是否有效。我檢查了幾個小組。它工作正常。但是有一個組在域中(我可以從AD中看到它),但仍然沒有成功執行我的代碼條件。活動目錄組搜索C#

如果我錯過了某些東西,你可以檢查一下嗎?

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "mydomain"); 
GroupPrincipal qbeGroup = new GroupPrincipal(ctx); 
PrincipalSearcher srch = new PrincipalSearcher(qbeGroup); 
IsValidGroup = 0; 
foreach (var found in srch.FindAll()) 
{ 
    if (found.ToString() == TxtAccName.Text) 
    { 
     IsValidGroup = 1; 
     break; 
    } 
} 

回答

1

實際上你已經掌握了本質。但是你的代碼並不容易。請在下面嘗試,讓我知道。

bool groupExists; 

using(var ctx = new PrincipalContext(ContextType.Domain, "mydomain")) 
{ 
    var filter = new GroupPrincipal(ctx) { Name = TxtAccName.Text } 

    using (var searcher = new PrincipalSearcher(filter)) 
    { 
     groupExists = searcher.FindAll().Any(); 
    } 
} 
+0

我沒有從groupExist變量中得到任何結果。在快速觀察中,我看到一個錯誤groupExist在當前上下文中不存在。 – Ramya

+0

謝謝@Tolga Evcimen!我把我的代碼與Case函數(ToUpper/ToLower)搞混了。一旦我修好了,問題就解決了。 – Ramya

+0

實際上,我提供的過濾器也可以處理它們。上/下情況和本地化問題。但是在你的代碼中,它要求它的字母一致。我再次建議你在使用語句時使用你的'searcher'和'context'。如果這篇文章有助於解決您的問題,請點擊接受的答案。 –