如何使用rest api将sitecollection管理员设置为SharePoint online中的用户

如何使用rest api将sitecollection管理员设置为SharePoint online中的用户,sharepoint,office365,sharepoint-online,Sharepoint,Office365,Sharepoint Online,是否可以使用rest api将网站集管理员设置为SharePoint online中的用户 是的,这是可能的。此页面详细介绍了用户和组的RESTful API: 特别要注意如何使用POST对用户进行更改。此外,如果查看可用字段,您将看到字段ISSTEAdmin的类型为布尔型,可读写,并具有以下描述: 获取或设置一个布尔值,该值指定用户是否为网站集管理员 首先需要通过EnsureUser方法将用户添加到网站集,然后需要将其IsSiteAdmin属性设置为true,将其设置为Admin,如user

是否可以使用rest api将网站集管理员设置为SharePoint online中的用户

是的,这是可能的。此页面详细介绍了用户和组的RESTful API:

特别要注意如何使用POST对用户进行更改。此外,如果查看可用字段,您将看到字段ISSTEAdmin的类型为布尔型,可读写,并具有以下描述:

获取或设置一个布尔值,该值指定用户是否为网站集管理员


首先需要通过
EnsureUser
方法将用户添加到网站集,然后需要将其
IsSiteAdmin
属性设置为true,将其设置为Admin,如user@MarkMascolino所述

在执行代码之前,我们需要用户的电子邮件。此外,执行此REST调用的用户本身也必须是管理员

代码如下,请根据您的用户和网站集进行修改:

function ensureUser(webUrl,loginName)
{
   var payload = { 
        'logonName': loginName,         
    }; 
   return $.ajax({
      url: webUrl + "/_api/web/ensureuser",
      type: "POST",
      contentType: "application/json;odata=verbose",
      data: JSON.stringify(payload),
      headers: {
         "X-RequestDigest": $("#__REQUESTDIGEST").val(),
         "accept": "application/json;odata=verbose"
      }
   });  
}

function setSiteAdmin(webUrl,userId){

    var payload = {
        "__metadata": { "type": "SP.User" },
        "IsSiteAdmin": true
    };

   return $.ajax({
      url: webUrl + "/_api/web/getuserbyid("+ userId +")",
      type: "POST",
      contentType: "application/json;odata=verbose",
      data: JSON.stringify(payload),
      headers: {
         "X-RequestDigest": $("#__REQUESTDIGEST").val(),
         "accept": "application/json;odata=verbose",
         "X-HTTP-Method": "MERGE"
      }
   });  
}




var loginName = 'i:0#.f|membership|user.name@tenantname.onmicrosoft.com'
ensureUser(_spPageContextInfo.siteAbsoluteUrl,loginName)
.done(function(data)
{
    console.log('User has been added');
    console.log(data);    

    setSiteAdmin(_spPageContextInfo.siteAbsoluteUrl,data.d.Id)
    .done(function(response){
        console.log(response);
        console.log("set user as admin");   
    }).fail(function(error){
        console.log(error);     
    });

})
.fail(function(error){
    console.log('An error occured while adding user');
});

确保用户代码参考-

谢谢标记。。我想将用户添加为网站集管理员,而不是网站集(根网站)中的网站用户。将Office 365全局管理员授予SharePoint网站集管理员。使用RESTAPI可以吗?