验证搜索结果集合(活动目录)



im构建一个具有登录系统的Web应用程序,但仅适用于管理员及其使用Active Directory作为凭据,我可以使用此代码检索其信息并且它可以工作,我得到一个"SearchResultcollection对象",其中包含具有相应密码和用户名的所有用户,如果搜索集合不为空,我只会将用户名添加到会话变量中。

这是代码:

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(("一样工作,但我找不到一个,我不确定如果找不到具有这些凭据的任何人或只是空,该对象是否会为空, 我无法调试以检查这一点。

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

最新更新