验证SearchResultCollection(活动目录)

时间:2017-07-10 19:08:32

标签: c# asp.net-mvc active-directory

我正在构建一个具有登录系统的Web应用程序,但仅限于管理员及其使用Active Directory作为凭证,我可以使用此代码检索其信息并且它可以工作,我得到一个拥有所有用户的“SearchResultcollection对象”使用相应的密码和用户名,如果searchcollection不为空,我只需将用户名添加到会话变量中。

以下是代码:

DirectoryEntry dir = new DirectoryEntry("ServerAdress", model.username + "@csnavigateurs.qc.ca", model.Password);
DirectorySearcher dirSearch = new DirectorySearcher(dir);
dirSearch.PropertiesToLoad.Add("memberof");
dirSearch.PropertiesToLoad.Add("userPrincipalName");
dirSearch.Filter = "(&(userPrincipalName=" + model.username + "@csnavigateurs.qc.ca))";

SearchResultCollection result;
 try
 {
     result = dirSearch.FindAll();
 }
 catch (DirectoryServicesCOMException)
 {
   ModelState.AddModelError("", "wrong username or password.");
    return View(model);
 }
 if () /*** Im trying to find the condition that goes here ***/
 {
    Session["utilisateur"] = model.username;
 }                 
   return RedirectToAction("AdminPage", "Admin");

但我的问题是我不知道如何检查此集合是否有1个或更多用户,我试图检查对象方法并查看是否有任何方法可以像“list.any()”那样工作但是我找不到一个,我不确定该对象是否为空,如果它没有找到任何有这些凭据的人或只是空,我无法调试检查。

1 个答案:

答案 0 :(得分:1)

你能试试这个if(result != null && result.Count!=0)

吗?