2

枚举用户 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,

4

0 回答 0