我正在构建一个.net核心Web应用程序,其中我使用AzureAD身份验证和Microsoft Graph从sharepoint在线站点获取数据。
我需要获取当前用户的组。
我尝试使用graphClient.Me.MemberOf.Request((。GetAsync((;
我想我在 Azure 目录中获得了用户的角色。
但我想要特定 SharePoint 在线网站的当前用户角色。
是否有可能获得此信息以及如何获取?
我没有找到使用Microsoft图形获得此方法的工作方法。
编辑:
因为Microsoft Graph不允许获取这些数据。 我尝试调用以下 SharePoint Online API 终结点:
https://{name}.sharepoint.com/sites/{name}/_api/web/currentUser?$select=Groups/Title&$expand=Groups
使用此 api 端点,我可以在浏览器中查看当前用户的所有角色。 但是我没有找到如何从我的 .net 核心 Web 应用程序调用它。
已尝试以下方法:
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.(
但是我没有找到获得令牌助手的方法.cs。
var token = TokenHelper.GetAppOnlyAccessToken(SharePointPrincipalId, webUri.Authority, null).AccessToken;
var ctx = TokenHelper.GetClientContextWithAccessToken(webUri.ToString(), token);
我尝试添加"AppForSharePointOnlineWebToolkit",但它没有在项目中添加所需的文件。
如何获取令牌助手.cs文件?
感谢您的任何帮助。
特里斯坦
若要在 .net 核心中执行 CSOM 代码,请执行以下设置。
我们可以按如下方式安装软件包。
安装包 TTCUE。NetCore.SharepointOnline.CSOM.16.1.8029.1200 - Version 16.1.8029.1200 更多信息在这里:TTCUE。NetCore.SharepointOnline.CSOM.16.1.8029.1200
或者使用 GitHub 中的以下解决方案:NetCore.CSOM
或按照以下步骤操作。
1.创建 .NET Core 控制台应用。
2.添加引用:Microsoft.SharePoint.Client.Portable.dll、Microsoft.SharePoint.Client.Runtime.Portable.dll 和 Microsoft.SharePoint.Client.Runtime.Windows.dll。
注意: 如果项目引用了 Microsoft.SharePoint.Client.dll 和 Microsoft.SharePoint.Client.Runtime.dll,请将其删除。
通过将 CSOM 库安装到另一个项目中,然后导航到文件目录中已安装的 nuget 包,可以访问这些引用:c:\Users\user.nuget\packages\microsoft.sharepointonline.csom(version(\libetcore45
3.将以下代码添加到 .NET Core 2.0 控制台应用程序:
获取当前用户角色:
若要获取当前用户角色,可以使用 Web.GetUserEffectivePermissions 方法。
前任:
ClientResult<BasePermissions> permission= web.GetUserEffectivePermissions(name);
context.ExecuteQuery();
var res = permission.Value;
请参阅以下链接以使用访问令牌获取客户端上下文:https://www.sharepointpals.com/post/how-to-get-the-client-context-using-app-access-token-by-passing-client-id-and-client-secret-id-using-csom-in-sharepoint-office-365/
No.Microsoft Graph 不会公开允许您获取 SharePoint 组及其成员信息的终结点。
如果你有这个要求,你可以在Microsoft图形用户语音上投票。