当前位置:编程学习 > C#/ASP.NET >>

问一个角色和权限的问题

我设计了一个角色权限系统(。Net 1.0),现在有个问题:
我在后台修改了某个人的权限,需要这个用户重新登录后才可以生效,这样很麻烦呀,也很不安全呀。问有什么办法让其即时生效呀。

我是通过建立用户票据,包含了用户的角色、用户ID、用户名。 --------------------编程问答-------------------- 不要把权限数据存到session里就可以了.
权限去数据库根据用户ID直接读. --------------------编程问答-------------------- 我是把数据都放在了cookie中了。
都去数据库中查岂不是很费资源呀! --------------------编程问答-------------------- 看情况了.如果你有4000个栏目的权限.放在cookie里才是占用带宽呢.

如果你只有几个人开票,放哪都行.

如果你一定要放在COOKIE中,你可以在数据库中放一个RNDCODE.每次访问页面时判断这个RNDCODE和COOKIE中的是否一至.不一至的话就强制让他重新加载COOKIES

你更改某易做图限时就把这个RNDCODE给他设为空.他再访问时就会被重新加载COOKIE --------------------编程问答-------------------- 例如有10个页面,按照你的说法岂不是没进入一个页面都要去访问一下数据库来查询权限? --------------------编程问答-------------------- 例如有10个页面,按照你的说法岂不是每进入一个页面都要去访问一下数据库来查询权限? --------------------编程问答-------------------- 设置一个Application大哥,,别激动

        if(//修改了权限)
        {
           Application["change"]="true";
        }
        else
        {
            Application["change"]="false";
        }

然后每次用户登陆的时候检测这个Application也可以

还有就是设置cache,,速度更快,,看你自己咯. --------------------编程问答-------------------- 你在用户登陆验证时,同时把他的权限也验证了 --------------------编程问答-------------------- 你的权限是加到那里的
权限应该是加载在角色上面的
然后人属于一个角色,就有了相应的权限
修改角色的权限,人操作数据的时候就会验证他属于的角色的权限啊
应该是即时生效吧 --------------------编程问答-------------------- 楼上正解 --------------------编程问答-------------------- 在cache设置一个字段看他是否更新过来判断是否更改,更改了就再读数据库读出来在放到cache里面,放cookie的话不是有大小限制嘛,而却也不安全啊 --------------------编程问答-------------------- 权限设计时候角色是相对稳定的一类用户的总称,而每个用户是授予什么角色,修改角色权限,就等同与巴所有属于该角色的用户权限修改了。 --------------------编程问答-------------------- 看来是我没有说清楚,-_-!

=========================================================================================

我采用的是form验证,使用票据,假如有三个角色:guest、user、admin。

一个用户A(角色为:user)登录了页面,在登录的时候程序会验证他的信息,给他一个user的票据,然后他就可以浏览页面或者干其他什么的。cookie选择的是长期保存,在下次他重新来到这个网站,由于票据还有效,所以就没有继续验证了。

问题来了,在他登录以后,我在后台修改了他的角色,改为guest,但是这个就不会立即生效,需要用户A重新登录,建立新的票据。

--------------------编程问答-------------------- 这样就很不安全呀,需要怎样改进呀!! --------------------编程问答-------------------- 这样可以不:你修改他的角色前,提示他退出 --------------------编程问答-------------------- 那样很不现实呀,首先我怎么通知他,而且他如果不退出呢,我岂不是修改不能生效。 --------------------编程问答-------------------- 顶一个 --------------------编程问答-------------------- 居然没有人了? --------------------编程问答-------------------- 学习一下 up --------------------编程问答-------------------- 进来之后发现我什么话都说不上,帮你顶 --------------------编程问答-------------------- 再顶一下 --------------------编程问答-------------------- form验证,使用票据,假如有三个角色:guest、user、admin。 

一个用户A(角色为:user)登录了页面,在登录的时候程序会验证他的信息,给他一个user的票据,然后他就可以浏览页面或者干其他什么的。cookie选择的是长期保存,在下次他重新来到这个网站,由于票据还有效,所以就没有继续验证了。 

问题来了,在他登录以后,我在后台修改了他的角色,改为guest,但是这个就不会立即生效,需要用户A重新登录,建立新的票据。 


建议加上两个策略
1,在用户角色比较多的时候不在cookie保存角色信息
2,登录后定时可定时检测角色角色的修改或更新cookie --------------------编程问答-------------------- 票据包含了用户的角色、用户ID、用户名
------------------------------------------
在关键页(或者经常使用的页面)面核实用户名、角色
不符的重新转向登陆页面
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,