clientcontext.executequeryasync 在 SharePoint 2010 中出现拒绝访问错误

clientcontext.executequeryasync gives access denied error in SharePoint 2010

我有一个要求,我需要检查用户是否是任何特定 SharePoint 组的成员。为此,我使用以下代码:

function IsCurrentUserMemberOfGroup(groupName, OnComplete) {
   var currentContext = new SP.ClientContext.get_current();
   var currentWeb = currentContext.get_web();
   var currentUser = currentContext.get_web().get_currentUser();
   currentContext.load(currentUser);

   var allGroups = currentWeb.get_siteGroups();
   currentContext.load(allGroups);
   currentContext.load(allGroups,'Include(users)');

   currentContext.executeQueryAsync(OnSuccess,OnFailure);

   function OnSuccess(sender, args) {
       // Success function callback  
       OnComplete(userInGroup);
   }

   function OnFailure(sender, args) {
      OnComplete(false);
   }    
}

如果当前用户是网站集管理员,那么这段代码可以正常工作,但如果用户不是网站集管理员,那么这将不起作用并出现以下错误:

access denied. you do not have permission to perform this action or access this resource

此错误发生在 currentContext.executeQueryAsync(OnSuccess,OnFailure);

任何人都可以帮助我做错什么以及为什么会出现此错误吗?有什么解决方法吗?

提前致谢!

这段代码对我不起作用,我不确定这段代码或环境有什么问题。所以我只是用下面的代码替换它并且我能够满足我的要求:

代码

var IsCurrentUserMemberOfGroup = function (groupName, OnComplete) {
   var userInGroup = false;
   $().SPServices({
       operation: "GetGroupCollectionFromUser",
       userLoginName: $().SPServices.SPGetCurrentUser(),
       async: false,
       completefunc: function (xData, Status) {
            if ($(xData.responseXML).find("Group[Name='" + groupName + "']").length == 1) {
                userInGroup = true;
            }
        }
    });
    OnComplete(userInGroup);
}

所以基本上我在这里使用 SPServices 并将代码替换为 SPServices 代码。