ASP.NET MVC 4中的授权

时间:2015-04-14 04:16:34

标签: c# asp.net-mvc asp.net-mvc-4 authorization

我在网站上有一个菜单。我想为每个角色访问它。

例如:我有3个角色,Role1可以访问人员,推荐,访问菜单,而角色2可以访问人员,饮食菜单和角色3具有完全访问权限。

我创建了一个静态类,用于在用户登录站点时设置值。并将此类属性用于显示/隐藏菜单。但是当其他用户登录网站时更改此值。

public static class GlobalVariables
{
    public static string UserName { get; set; }
    public static string Image { get; set; }

    public static bool IsAuthorizePersonnel { get; set; }
    public static bool IsAuthorizeReferred { get; set; }
    public static bool IsAuthorizeDiet { get; set; }
    public static bool IsAuthorizeVisit { get; set; }
 }

如何设置菜单访问权限?

2 个答案:

答案 0 :(得分:1)

当新用户登录时,静态类正在改变,因为ASP.NET处理同一App域中的多个请求/客户端,这意味着它们共享静态类/属性。

为了制作类似这样的工作,您需要通过会话状态或用户键控内存缓存(例如Redis)来缓存信息。

或者,Asp.Net简单成员资格确实具有角色支持,因此您还可以考虑将IsX属性创建为角色检查的包装。

有关示例,请参阅以下文章:

答案 1 :(得分:0)

基本上,您有一个类的实例,用于站点中的所有用户。由于它是静态类。

您应该创建一个每用户实例的类。您可以在fi用户名下放置在缓存中。