我正在开展一项任务,要求我使用c#从Sharepoint Online获取“除外部用户以外的所有人”组。
我在网上发现的一些文章提到我必须使用“c:0-.f | rolemanager | spo-grid-all-users / $ authRealm”来获取“除外部用户之外的所有人”。获得$ authRealm guid的课程有额外的步骤。
但我发现 clientContext.Web.EnsureUser(“除了外部用户以外的所有人”); 工作得很好。我找到了同一个用户。
正在使用clientContext.Web.EnsureUser(“除外部用户外的所有人”);足够?还是我错过了什么?
我正在学习分享,所以请耐心等待。
答案 0 :(得分:0)
我们可以使用以下代码获取“除外部用户外的所有人”。
$siteUrl = "https://sharepointsite.sharepoint.com/sites/subsite"
# Set headers
$headers = @{
"Authorization"="Bearer ";
}
$authRealm = "";
# Make an invalid request. We will extract the GUID from the Response.
try {
Invoke-WebRequest $("$siteUrl/_vti_bin/client.svc") -Method POST -Headers $headers
}
catch [exception] {
# Extract Authentication Realm GUID from Response headers
$_.Exception.Response.Headers["WWW-Authenticate"] -match '(?<=Bearer realm=")\w+-\w+-\w+-\w+-\w+(?=")'
$authRealm = $matches[0];
}
$everyoneExceptExternal = "c:0-.f|rolemanager|spo-grid-all-users/$authRealm"
$everyoneExceptExternalPrincipal = $web.EnsureUser($everyoneExceptExternal);
$ctx.Load($everyoneExceptExternalPrincipal);
$ctx.ExecuteQuery();