javascript - _api/web/siteusers 在我检查用户权限之前不会返回用户
问题描述
如果我查询尚未登录到我们的新 SharePoint 网站的用户使用
_api/web/siteusers(@v)?@v='User i:0#.f|membership|someUser@amc.edu'
我没有得到任何结果。如果我然后只是在线访问 SP 中的权限并检查是否someUser
有权限(他们可能有也可能没有),那么只需检查someUser
's 权限现在_api/web/siteusers
行为正确。我看到了一些处理问题的链接的引用,但想知道它在 sprLib 中是如何工作的。
有谁知道如何确保sprLib中的用户?
参考链接:
解决方案
您可以使用 rest api 来确保用户。
function ensureUser(webUrl,loginName)
{
var data = { 'logonName': loginName };
return $.ajax({
url: webUrl + "/_api/web/ensureuser",
type: "POST",
data: JSON.stringify(data),
headers: {
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"Accept": "application/json;odata=verbose",
"Content-Type": "application/json;odata=verbose"
}
});
}
var loginName = 'user login name'
ensureUser(_spPageContextInfo.webAbsoluteUrl,loginName)
.done(function(data)
{
console.log('success');
})
.fail(function(error){
console.log(error);
});
检查用户权限将根据我的经验调用服务器端确保用户,以便您_api/web/siteusers
之后可以通过。
更新:
不确定你的意思是 sprestlib。
<script src="https://cdn.jsdelivr.net/gh/gitbrent/sprestlib@1.8.0/dist/sprestlib.min.js"></script>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script>
sprLib.rest({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/ensureuser",
data: "{ 'logonName': 'i:0#.f|membership|testa@xxxxxx.onmicrosoft.com'}",
type: "POST",
headers: {
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"Accept": "application/json;odata=verbose"
}
})
.then(function () { console.log("log"); })
.catch(function (errMsg) { console.error(errMsg) });
</script>
推荐阅读
- .net - 尝试使用 LINQ MVC 在控制器中使用多 EF 模型?
- c# - 建模一对多关系-模型与视图模型
- python - 未获取 json 属性的 JSON 的完整属性值
- c# - 蛮力函数输入的算法以找到最大值
- javascript - Firebase angularfire2 - 如何仅从当前用户返回数据?
- ruby-on-rails - 删除印象派宝石的 N+1 个查询
- .net-core - 无法在 dotnet Core 2.1 中创建新角色
- javascript - toFixed 不是函数吗?
- sql-server - 使用带有 SQL Server 的 EF Core 2.1 进行正确的并发处理
- perl - 如何从 Perl 中的结构数组中删除重复项?