.net core 在.net核心应用程序中使用O365组的代码
我正在开发一个.net核心应用程序,必须为角色分配集成O365安全组,是否有人可以共享示例代码,这将非常有帮助 我已经在O365身份验证中使用了Azure AD应用程序注册概念,它工作得非常好。Net core应用程序托管在IIS上,当通过在浏览器中键入url进行访问时,它会将用户重定向到login.microsoftonline.com,经过身份验证后,用户将看到.Net core应用程序的仪表板部分.net core 在.net核心应用程序中使用O365组的代码,.net-core,office365,.net Core,Office365,我正在开发一个.net核心应用程序,必须为角色分配集成O365安全组,是否有人可以共享示例代码,这将非常有帮助 我已经在O365身份验证中使用了Azure AD应用程序注册概念,它工作得非常好。Net core应用程序托管在IIS上,当通过在浏览器中键入url进行访问时,它会将用户重定向到login.microsoftonline.com,经过身份验证后,用户将看到.Net core应用程序的仪表板部分 不太确定如何在.net core应用程序中使用O365组进行权限管理,因此需要查找一些示例片
不太确定如何在.net core应用程序中使用O365组进行权限管理,因此需要查找一些示例片段,提前感谢。您可以作为应用程序或模拟用户查询graph api,以读取用户所在的组,然后使用这些Id筛选视图或执行任何需要执行的操作 您可以使用成员列表 希望有帮助。可用于应用程序中的权限管理。您可以通过使用as来实现这一点 首先,在应用程序配置文件中定义组到角色的映射似乎是一个很好的地方。每个组都有一个唯一的id,您可以使用该id获取,并映射到config.json文件中的自定义角色: 然后,在成功登录应用程序后,获取用户所属的所有组。您将获得一个组列表,每个组都包含id属性:
GET https://graph.microsoft.com/v1.0/me/memberOf
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#directoryObjects",
"value": [
{
"@odata.type": "#microsoft.graph.directoryRole",
"id": "43a63cc2-582b-4d81-a79d-1591f91d5558",
"displayName": "Company Administrator",
"roleTemplateId": "62e90394-69f5-4237-9190-012177145e10"
},
{
"@odata.type": "#microsoft.graph.group",
"id": "d17a5f86-57f4-48f8-87a0-79761dc8e706",
"createdDateTime": "2017-07-31T17:36:25Z",
"displayName": "Admins group",
"securityEnabled": true
}
]
}
您可以使用来发出请求并创建组对象以形成响应:
var userGroups = await graphServiceClient.Me.Groups.Request().GetAsync();
最后,用您的自定义角色验证每个组的id,例如:
public string GetRole(IEnumerable<Group> userGroups, IConfiguration config)
{
foreach (var group in userGroups)
{
switch (group.id)
{
case config.GetSection("AppRoles:0"):
return "Admin";
case config.GetSection("AppRoles:1"):
return "Manager";
default:
return "Unknown";
}
}
}
请确保为您的应用访问Microsoft Graph设置了相应的选项
public string GetRole(IEnumerable<Group> userGroups, IConfiguration config)
{
foreach (var group in userGroups)
{
switch (group.id)
{
case config.GetSection("AppRoles:0"):
return "Admin";
case config.GetSection("AppRoles:1"):
return "Manager";
default:
return "Unknown";
}
}
}