我创建了一个权限对象,用于存储userId,用户所在的组和用户权限。这是一个公共类
我还需要一个静态对象来存储这些权限对象的列表,如果管理员更改权限中的任何内容,则所有更改都会立即应用于每个已记录的用户
我有几个问题:
这是系统要求,一旦管理员进行更改,权限设置就会生效。
修改1:
public class permissionTemp
{
public static Guid userGuid { get; set; }
public static string[] grupos { get; set; }
public static string[] permissoes { get; set; }
}
public static class security
{
public List<permissionTemp> userPermissionSet { get; set; }
}
答案 0 :(得分:1)
考虑一个单身人士,所以你不必担心创作时间:
的Singleton:
public class Permission
{
private Permission()
{ }
private static Permission _instance = null;
public static Permission Instance
{
get
{
if(_instance == null)
{
_instance = new Permission();
}
return _instance
}
}
现在您可以使用
访问同一个实例Permission.Instance
在第一次访问时创建对象。因此,在私有构造函数中,您可以添加代码以读取数据库的权限。
答案 1 :(得分:1)
注意:我会使用一些锁定机制来防止多个同时访问列表。存储列表的另一个位置是WebCache。这是由所有用户使用的,因此如果由人x更新,则从y的读取将是更新版本。
答案 2 :(得分:0)
首先,我建议避免创建用于存储此类感知信息的静态对象,如果任何用户在未单击“注销”的情况下关闭浏览器,则不会删除该特定用户的对象。
如果您需要这样做以满足您的要求,您可以在应用程序第一次启动时在Global.asax文件上的Applciation Start Event中的该对象中创建它。