【发布时间】:2011-06-24 05:56:10
【问题描述】:
我已经完成了 ASP.NET 3.5 Web 应用程序的身份验证部分。我想了解更多常见的授权模式。
我可以介绍一下我目前的授权结构吗:
我有一个包含“模块”和“操作”表的数据库。 模块代表应用程序中的系统,操作代表可以在系统中执行的操作。
Customer、Order、Billing 将被定义为一个模块。 “操作”与模块相关:Customer.Add、Customer.Delete 将是客户操作。
每个用户都有一个角色,该角色可以访问某些操作,具体取决于他们的角色。
请注意,页面菜单是根据用户的访问权限生成的,用户不会看到他们无权访问的模块和操作。
我的问题从如何在这里实现授权方案开始,可能使用现有的模式或技术。
我应该如何以及何时保护模块,并检查用户对所述模块执行操作的授权?
我还没有实现这个,但这是我想到的一种方法:
- 用户点击操作:模块:客户 |操作:添加
- 在单击事件中,我查看用户的角色,验证用户是否可以执行操作,然后触发操作或相应地引导用户。
请原谅这个问题的晦涩性质。我不知道在这里问什么。
我希望了解人们如何处理授权,以及人们如何允许/禁止访问业务方法。我不确定声明式安全是否是我需要的,或者我上面提供的简单示例是否是可行的方法。
这里有很多选择,而且可能性似乎无穷无尽。请让我知道是否有任何模型或模式可以在应用程序内处理授权。
【问题讨论】:
-
我认为标准的 asp.net 系统可能是一个很好的起点——membershipprovider、rolesprovider 等。它们有一个相当通用的标准模式,这将是一个很好的起点。 4guysfromrolla.com/articles/120705-1.aspx
标签: c# asp.net security authorization