首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定经过身份验证的用户是否有权访问区域/控制器/操作?

如何确定经过身份验证的用户是否有权访问区域/控制器/操作?
EN

Stack Overflow用户
提问于 2019-07-15 16:03:36
回答 2查看 104关注 0票数 0

在视图中,并且您知道希望用户提供链接的目标的区域名称、控制器名称和操作名称,我如何确定区域/控制器/操作是否授权给经过身份验证的用户。

虚构的用例:

我有一个包含图书列表的表(bookscontroller.index的结果)。最右边是一些用于编辑或删除特定书籍的图标。编辑链接指向bookscontroller.edit,删除链接指向bookscontroller.delete。

在操作上,有自定义的授权属性,这很好用。如果用户想要访问book/ edit /1,但不允许用户编辑图书,则用户将被重定向到登录页面。

如果不允许用户编辑图书,那么让编辑图标出现在那里就有点愚蠢了。因此,在视图级别,我希望能够确定是否允许用户使用bookscontroller的编辑操作。如果是,则显示图标;如果不是,则不显示操作。

目标:使用这些知识创建一个自定义的标签帮助器。

EN

回答 2

Stack Overflow用户

发布于 2019-07-30 09:17:19

go-to方法是反应式的,即当用户尝试执行操作时,您可以检查该用户是否可以执行操作。既然你不想走那条路,下面就告诉你怎么做。(然而,这是反模式的)

将用户的身份验证token发回后台。后端应该有一个用户可以点击页面上的每个按钮的API端点。使用身份验证令牌,后端决定是暗显还是启用按钮。

现在,后端解决这个问题的效率并不是很高。后端需要从字面上尝试某些操作并中止事务。对于创建和检索,这是微不足道的(您可以预先解析它们),但是对于编辑和删除,这需要大量资源。

票数 0
EN

Stack Overflow用户

发布于 2019-07-30 13:58:42

在UI上控制此类操作的标准方法是使用基于角色的授权。对于按钮或其他类似的UI元素,设置角色标签,例如"admin:edit","viewer:readonly“等。当您验证用户身份时,从后端服务器发送适用的角色,以您的UI全局可访问的方式存储它们,并使用它们在您的应用程序中过滤UI元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57035564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档