我正在构建一个具有登录系统的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()”那样工作但是我找不到一个,我不确定该对象是否为空,如果它没有找到任何有这些凭据的人或只是空,我无法调试检查。
答案 0 :(得分:1)
你能试试这个if(result != null && result.Count!=0)