根据ASP .NET MVC 5中的用户角色显示按钮

时间:2018-09-07 10:44:14

标签: session asp.net-mvc-5 user-roles

我必须基于角色在视图中显示按钮,假设我具有admin用户和default用户之类的角色,其中admin用户将能够看到删除,修改和添加按钮,但是default用户只能搜索。当前,当用户登录时,我正在捕获用户ID并将该用户ID发送到数据库以获取用户的角色,并且我将这些角色存储在会话中。在视图中,使用以下代码检索角色值

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

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

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

1 个答案:

答案 0 :(得分:0)

此解决方案可能会导致一些性能问题,因此我建议在action方法中获取角色并将其存储在ViewData中。

但是我认为最好的解决方案是使用此方法创建局部视图,并在方法中使用authorize标签。