我在网站上有一个菜单。我想为每个角色访问它。
例如:我有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; }
}
如何设置菜单访问权限?
答案 0 :(得分:1)
当新用户登录时,静态类正在改变,因为ASP.NET处理同一App域中的多个请求/客户端,这意味着它们共享静态类/属性。
为了制作类似这样的工作,您需要通过会话状态或用户键控内存缓存(例如Redis)来缓存信息。
或者,Asp.Net简单成员资格确实具有角色支持,因此您还可以考虑将IsX
属性创建为角色检查的包装。
有关示例,请参阅以下文章:
答案 1 :(得分:0)
基本上,您有一个类的实例,用于站点中的所有用户。由于它是静态类。
您应该创建一个每用户实例的类。您可以在fi用户名下放置在缓存中。