【发布时间】:2019-11-07 07:38:14
【问题描述】:
我正在创建一个应用程序,其中包含基于角色的模块管理,并且随时更改。 场景:
- 如果用户有权创建和查看员工,则用户只能创建和查看员工,但将来管理员将用户的角色从创建和查看更改为查看和删除,则用户只能执行该活动。
我尝试使用 [Authorize(Roles ="Staff")],但如果管理员更改运行时而不是托管。
有人可以调查一下并回复我吗?
【问题讨论】:
-
Authorize(Roles ="Staff")确保角色为Staff的用户只能访问此操作...因此,如果用户从此角色中删除,用户将无法访问此操作.. 这不是吗发生了什么? -
据我所知这是不可能的,也许不是一个好主意。用户应注销并重新登录以应用新角色。您甚至可以以不同的方式呈现页面。
-
假设您使用 cookie 或 jwt 不记名令牌:用户的声明/角色保存在 cookie/令牌中,您必须注销用户并再次登录用户以确保它得到一个新的 cookie/令牌。
-
嗨,@itminus 目前,初始阶段正在运行,因此在登录用户时获取角色和可用角色列表,如
Create Employee、View Employee和 @Emad 是的,我需要及时更改登录 如果在实时会话期间有任何更改,则对角色没有影响。有可能吗? -
@DeepSoni 我们可以实现自定义授权属性,以便我们可以实现此要求。请提出建议,以便我们继续前进。
标签: c# asp.net-mvc authentication asp.net-core