需要制作150多个网页,每一个网页都需要相应的权限才能访问,并且可以设置组(组可以随意建立),用户必须属于某个组,管理员可以給用户随意分配权限以访问这些网页(权限不得超过组的限制),我是这样做的:建立用户的时候该用户继承其所在组的所有权限,再給用户分配权限的时候将用户未选择的权限记录进入用户权限表,在检查用户权限的时候先根据用户名获得其所在组的权限,然后判断这些权限是否在她的用户权限表中,若存在则将这个权限去掉以此方法获得用户权限即select ... from ...where...not in(...),请问各位高手还有设么高效率的方法吗?如何设计数据库表?

解决方案 »

  1.   

    使用ASP.NET自带的Membership就可以,他会自动帮你创建数据库表、视图及存储过程,并且在web.config里可以很容易的添加和修改角色权限(当然需要启动角色管理机制)。关于ASP.NET的Membership怎么用Google一下就知道了。
      

  2.   

    可以用位操作来设计 :
    uint b = 0x7;//存数据库权限b==(page1|page2|page3)
                uint page1 = 0x1;//0010
                uint page2 = 0x2;//0100
                uint page3 = 0x4;//1000            if ((b | page1) == b)
                {
                    Console.WriteLine("Can visit page1");
                }
                if ((b | page2) == b)
                {
                    Console.WriteLine("Can visit page2");
                }
                if ((b | page3) == b)
                {
                    Console.WriteLine("Can visit page3");
                }
      

  3.   

    uint page1 = 0x1;//0001
                uint page2 = 0x2;//0010
                uint page3 = 0x4;//0100
    上面设计为页面常量,为2的次方
      

  4.   

    用sql语句没有问题,这种表的数据量不会大的