簡體   English   中英

Sharepoint 2013:通過REST API確保用戶

[英]Sharepoint 2013: EnsureUser via REST API

我正在嘗試通過REST API自動確保某些用戶。 我的REST電話:

$.ajax({
url: "blablabla/_api/web/ensureuser",
type: "POST",
data: "{ 'logonName': 'i%3A0%23.w%7Cdomain%09logonName' }",
headers: {
    "X-RequestDigest": $("#__REQUESTDIGEST").val(),
    "accept": "application/json;odata=verbose"
},
success: function () {
    console.log("done!");
},
error: function (err) {
    console.log(JSON.stringify(err));
}
});

現在,在發送此呼叫時,出現以下錯誤;

“錯誤的請求:Microsoft.Data.OData.ODataContentTypeException找不到與響應的內容類型匹配的受支持的MIME類型。所有受支持的類型'application / json; odata = verbose'均與內容類型不匹配' application / x-www-form-urlencoded; charset = UTF-8'“

該調用的建立類似於指定的msdn參考中。

發生此錯誤是因為ContentType是JSON請求,因此需要明確指定它:

contentType (預設值:'application / x-www-form-urlencoded; charset = UTF-8')

將數據發送到服務器時,請使用此內容類型。 默認值為“ application / x-www-form-urlencoded; charset = UTF-8”

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


var loginName = 'i:0#.f|membership|jdoe@contoso.onmicrosoft.com'
ensureUser(_spPageContextInfo.webAbsoluteUrl,loginName)
.done(function(data)
{
    console.log('User has been added');
})
.fail(function(error){
    console.log('An error occured while adding user');
});

替代解決方案:

您還可以通過以下方式執行REST查詢:

        $.ajax({
        url: "http://[website]/_api/web/ensureuser('"+user_name+"')",
        type: "POST",
        headers: {             
            'accept': 'application/json;odata=verbose;charset=utf-8',
            'Content-Type': 'application/json;odata=verbose;charset=utf-8',
            'X-RequestDigest': $("#__REQUESTDIGEST").val()                    
        },
        success: function(response_data){ [your custom success action]
        },
        error: function(response_data){[your custom fail action]}
      });

var user_name將包含目標AD用戶名。

注意:

  • AD用戶使用sureUser方法時,只需使用其username即可 因此, user_name將是這樣的:“ username”。 無需在任何其他類型的前綴/后綴之前添加“ domain \\”。 只是用戶名

  • ContentType和接受標頭必須為application / json; odata = verbose; charset = utf-8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM