如何在asp.net中实现用户基础安全而不是角色基础?
问题描述:
我必须使用.Net3.5在我的Web项目中实现用户基础安全。以下是一些我们需要:如何在asp.net中实现用户基础安全而不是角色基础?
- 角色可以是管理,管理,编辑,会员等
- 用户可以拥有多个角色
- 每个角色都有自己的动态菜单和限制/资源
- 所有菜单并且接口将从数据库动态填充
我听说过这种类型的用户基础安全性可以使用HashTable实现,但我不知道它是怎么回事?
今天我才知道,对于这种工作,Java人们使用Interceptor Design模式。那么,我怎么能在asp.net C#中做同样的事情呢?
答
创建一个HTTP模块,然后创建一个实现iPrincipal和iIdentity对象的类。在大多数情况下,iIdentity将会加载角色。在HTTP模块中将Context.User设置为Authenicate事件中新的iPrincipal对象。
由于两个接口iPrincipal和iIdentity非常薄,这比成员资格提供者更容易实现。在每个页面上,您可以使用User.IsInRole(“Rolename”)来验证用户是否具有适当的权限。
+0
@ggonsalv 感谢您的回复,请给我一个代码示例或任何一种链接,我可以找到代码 – 2010-04-27 13:17:54
@Theresa 感谢您的快速回复。我已经经历了所有关于内部成员提供者的说法,我们不想使用 – 2010-04-26 15:02:18
为什么你不想使用成员提供者? – Theresa 2010-04-26 15:15:47
根据客户要求 – 2010-04-26 15:33:30