【发布时间】:2020-01-10 18:37:58
【问题描述】:
我正在构建一个 .net 核心 Web 应用程序,在其中我使用 AzureAD auth 和 Microsoft Graph 从共享点在线站点获取数据。
我需要获取当前用户的群组。
我尝试使用 graphClient.Me.MemberOf.Request().GetAsync();
我想我在 Azure 目录中获得了用户的角色。
但我想要特定共享点在线站点的当前用户角色。
是否可以获取这些信息以及如何获取?
我没有找到使用 Microsoft Graph 的有效方法。
编辑:
因为 Microsoft Graph 不允许获取该数据。 我尝试调用以下 Sharepoint Online API 端点:
https://{name}.sharepoint.com/sites/{name}/_api/web/currentUser?$select=Groups/Title&$expand=Groups
使用这个 api 端点,我可以在浏览器中查看当前用户的所有角色。 但我找不到如何从我的 .net 核心网络应用程序中调用它。
尝试了以下方法:
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Content-types", "application/json;odata=verbose");
var response = await client.GetAsync("https://{name}.sharepoint.com/sites/{name}/_api/web/currentUser?$select=Groups/Title&$expand=Groups");
if (response.IsSuccessStatusCode)
{
var json = await response.Content.ReadAsStringAsync();
}
但这会给我一个 403 响应。
编辑 2:
我目前正在尝试使用 CSOM 来获取此信息(TCUE.NetCore.SharepointOnline.CSOM.16.1.8029.1200。)
但我找不到获取 TokenHelper.cs 的方法。
var token = TokenHelper.GetAppOnlyAccessToken(SharePointPrincipalId, webUri.Authority, null).AccessToken;
var ctx = TokenHelper.GetClientContextWithAccessToken(webUri.ToString(), token);
我尝试添加“AppForSharePointOnlineWebToolkit”,但没有在项目中添加所需的文件。
如何获取 TokenHelper.cs 文件?
感谢您的帮助。
特里斯坦
【问题讨论】:
标签: .net-core azure-active-directory microsoft-graph-api sharepoint-online csom