gpt4 book ai didi

javascript - 如何检查 Sharepoint 用户是否在安全组中,无论它是否在 AD 组 CSOM 中

转载 作者:行者123 更新时间:2023-12-03 09:23:49 25 4
gpt4 key购买 nike

我有一个 SharePoint 托管应用程序,我需要检查当前用户是否位于 SharePoint 安全组中,无论它是否位于该组内的 AD 中。以下代码检查用户是否位于安全组中,但前提是他们明确位于安全组中。该代码不会查看安全组中的子组内部。

    function getItems() {

// only execute this function if the script has been loaded
if (ready) {

// the url to use for the REST call.
var url = SPAppWebUrl + "/_api/SP.AppContextSite(@target)" +
"/web/lists/getbytitle('" + TituloListaEventos + "')/items?$select=Title,Category,StartDate,EndDate,EncodedAbsUrl,ID,LinkSolicitud&$filter=Category eq '" + Categoria + "'" +
"&@target='" + SPHostUrl + "'";

// create new executor passing it the url created previously
var executor = new SP.RequestExecutor(SPAppWebUrl);

// execute the request, this is similar although not the same as a standard AJAX request
executor.executeAsync(
{
url: encodeURI(url),
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
IsCurrentUserMemberOfGroup("Solicitantes", function (isSolicitante) {
...
},
error: function (data) {
...
}
});

}
}

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);

var group = allGroups.getByName(groupName);
currentContext.load(group);

var groupUsers = group.get_users();
currentContext.load(groupUsers);

currentContext.executeQueryAsync(OnSuccess, OnFailure);

function OnSuccess(sender, args) {
var userInGroup = false;
var groupUserEnumerator = groupUsers.getEnumerator();
while (groupUserEnumerator.moveNext()) {
var groupUser = groupUserEnumerator.get_current();
if (groupUser.get_id() == currentUser.get_id()) {
userInGroup = true;
break;
}
}
OnComplete(userInGroup);
}

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

最佳答案

SharePoint 客户端对象模型不支持读取 Active Directory 组。您可能需要创建自定义 Web 服务。如果您可以选择使用 .NET,我强烈建议您这样做,因为它在访问 SharePoint 数据以及与 Active Directory 数据交叉引用时效果很好。

关于javascript - 如何检查 Sharepoint 用户是否在安全组中,无论它是否在 AD 组 CSOM 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31749393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com