首页 > 解决方案 > 根据 ASP .NET MVC 5 中的用户角色显示按钮

问题描述

我必须根据角色在视图中显示按钮,假设我有管理员用户和默认用户等角色,其中管理员用户将能够看到删除、修改和添加按钮,但默认用户只能搜索。目前,当用户登录时,我正在捕获用户 ID 并将用户 ID 发送到数据库以获取用户的角色,并将这些角色存储在会话中。在使用以下代码检索角色值的视图中

@if (Session["UserRole"].ToString() == "Admin")
                {
                    //show delete,modify and create buttons
                }

但在我的生产中,代码将托管在多个服务器上,并且请求可以发送到任何服务器。

我的问题是将角色存储在会话中是一个好习惯,有没有更好的方法来解决我的要求。如果我在有多个服务器的生产环境中使用会话,会话方法是否有效?

标签: sessionasp.net-mvc-5user-roles

解决方案


使用此解决方案可能会遇到一些性能问题,因此我建议在操作方法中获取角色并将其存储在 ViewData 中。

但我认为最好的解决方案是用这个创建一个局部视图,并在方法中创建一个授权标签。


推荐阅读