如何确定已认证的用户是否有权访问区域/控制器/动作?

时间:2019-07-15 08:03:35

标签: authorization asp.net-core-2.2 asp.net-core-tag-helpers

我如何确定区域/控制器/操作是否已获得身份验证用户的授权。

目标:在自定义标签帮助程序中使用该信息。

2 个答案:

答案 0 :(得分:0)

转到方法是被动的,即您在用户尝试执行操作时检查用户是否可以执行操作。既然您不想走那条路,这就是方法。 (但是,这是反模式)

已将用户的身份验证令牌发送回后端。后端应该为用户可以单击的页面上的每个按钮都有一个API端点。借助身份验证令牌,后端可以确定是调暗还是启用按钮。

现在,后端为解决此问题所做的工作并不十分有效。后端实际上需要尝试某些操作并中止事务。对于创建和检索来说,这是微不足道的(您可以预先解析它们),但是对于编辑和删除,这需要大量资源。

答案 1 :(得分:0)

在UI上控制此类操作的标准方法是使用基于角色的授权。 对于按钮或其他此类UI元素,请设置角色标签,例如“管理员:编辑”,“查看者:只读”等。 在对用户进行身份验证时,请从后端服务器发送适用的角色,以UI可以全局访问的方式存储它们,并使用它们在整个应用程序中过滤UI元素。