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 代码。
我有一个要求,我需要检查用户是否是任何特定 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 代码。