我想在mvc 5中实现基于角色的授权,我正在使用asp.net Identity 2.0进行用户身份验证。
请建议如何通过使用authorize属性或任何其他可能的方法来实现此目的。
我还希望在登录后存储用户权限,并且不想在授权控制器操作时一次又一次从数据库中获取。 (不想使用会话)。
[![Role Permissions stored in DB][1]][1]
答案 0 :(得分:0)
我可能不太了解您的问题的深度,但是我发现您的Authorize语句有点不正确。
尝试[Authorize(Roles =“ admin”)] 它使用Microsoft.AspNetCore.Authorization;
还有基于策略的授权。 [Authorize(Policy =“ Seniors”)]
我还在这里找到了一个您可能感兴趣的答案,它涉及自定义角色权限:create custom authorize attribute
技巧是为用户分配一个角色,然后在操作方法或页面上甚至在视图HTML中通过测试用户IsInRole是否使用'Authorize',例如: @if(User.IsInRole“ admin”){在此处添加HTML}
如果您确实使用了'Roles',请记住,您可以向'Authorize'标签添加多个角色,例如[Authorize(Roles =“ admin,staff,user”)]等。