Role Claims in ASP.NET Core Identity compared to Role Permissions in custom auth
让我们离开ASP.NET Identity几秒钟,可以说我们正在为应用程序构建自定义身份验证/授权系统。
它将包含下表以提供充分的灵活性:
用户数
的角色
权限
UserRoles
角色权限
通过上面的内容,我们可以在应用程序的完整的用户管理部分中,管理员可以说用户A具有角色B,角色B具有权限C,D,F。
上面的内容在过去一直对我有用,但是现在让我们切换到使用ASP.NET Identity的ASP.NET Core MVC应用程序。
尝试利用Microsoft在UserManager中为ASP.NET Core Identity提供的所有功能,我仍然希望能够实现上述功能,但是要使用ASP.NET Core Identity MVC。
我知道的:
我可以轻松地使用UserManager来为用户和角色以及用户角色实现CRUD页面。
我想弄清楚的是:
如何复制"角色具有哪些权限/动作"的相同行为?概念。
我对此的初步猜测是,您将结合使用Claims和Roles。将声明分配给角色,即RoleClaims,然后将角色分配给Users。
这样,我将能够简单地使用Authorize标签检查Controllers / Action方法上方的Roles。另外,如果用户的角色没有Claim" DeleteProduct",则进一步在页面级别显示"隐藏/显示删除"按钮,类似于此基于视图的授权文档所说的。
-
我试图弄清楚我是否在正确的道路上使用这些东西。任何建议或更正将是有帮助的。
这个人似乎对您的特定问题有潜在的解决方案。
使用ASP.NET Core Identity 3的用户角色权限
有关索赔和保单的更多信息
https://docs.microsoft.com/zh-cn/aspnet/core/security/authorization/claims
基本上
注意:不能完全确定它是否适用于ASP.Net Core 2,或者您使用的是哪个版本。