如何设计所有用户角色的检索和处理?

How do I design the retrieval and processing of all user roles?

我正在使用 ASP.NET 核心 2.0 MVC 构建一个内部网。所有用户都是活动目录的一部分。另外,我有一个包含下表的 MSSQL 数据库:

Users (Id, FirstName, UserNameAd (unique), ...)
Roles (Id, RoleName)
UserRoles (User_Id, Role_Id)

在我的 Web 应用程序中,我现在想要检索用户的角色并将它们存储在 Microsoft 的 Authentication/Identity 类 中,以便使用 [Authenticate(Roles="Admin")] 东西。我不确定我应该把这个角色请求放在哪里,什么是最佳实践。用户有可能在白天获得新角色或角色在白天被删除,我实际上不希望用户单击特定内容或需要他重新启动浏览器才能应用新角色 -这就是为什么我认为每个服务器操作(POST、GET)都需要从服务器请求角色。

任何想法或 link 一个好的教程将不胜感激。

此外,如果您认为我的方法不是很好的做法并且您有更好的想法,我很乐意知道。

在互联网上进行了大量讨论和研究后,我得出的结论是选择纯 windows 身份验证。

它开箱即用,您已经可以使用活动目录组作为 [Authorize(Roles = "ADGroupName")] 的角色,这非常简单明了。