枚举用户 Active Directory 组时出现以下错误
System.Web.HttpUnhandledException (0x80004005):引发了“System.Web.HttpUnhandledException”类型的异常。---> System.ArgumentOutOfRangeException:索引超出范围。必须是非负数且小于集合的大小。
这是我的代码:
internal static void admincheck(string username)
{
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "EDIT");
using (UserPrincipal user = UserPrincipal.FindByIdentity(ctx, username))
{
System.DirectoryServices.AccountManagement.PrincipalSearchResult<Principal> groupList = user.GetGroups();
foreach (GroupPrincipal @group in groupList)
{
if (@group.Name == "students") { System.Web.HttpContext.Current.Response.Redirect("no_access.aspx"); }
}
}
}
有任何想法吗?谢谢
完整的堆栈跟踪:
System.Web.HttpUnhandledException (0x80004005):引发了“System.Web.HttpUnhandledException”类型的异常。---> System.ArgumentOutOfRangeException:索引超出范围。必须是非负数且小于集合的大小。参数名称: System.DirectoryServices.ResultPropertyValueCollection.get_Item(Int32 index) 处 System.DirectoryServices.AccountManagement.ADDNLinkedAttrSet.MoveNextMemberSearcher() 处 System.DirectoryServices.AccountManagement.ADDNLinkedAttrSet.MoveNext 处 System.Collections.ArrayList.get_Item(Int32 index) 处的索引() 在 System.DirectoryServices.AccountManagement.FindResultEnumerator`1.MoveNext() 在 TechnicalToolkit.toolkit.admincheck(String username) 在 System.Web.UI.Control.LoadRecursive() 在 System.Web.UI.Page.ProcessRequestMain(Boolean包括StagesBeforeAsyncPoint,