EnterPrise应用(5) Security Application Block应用程序块 授权处理(VB.NET)
Posted on 2006-11-07 08:53 THEONE2008 阅读(1895) 评论(1) 编辑 收藏 举报
在EnterPrise SAB应用模块中,授权部分(Authorization)的处理是个非常关键的的部分,前期的用户处理、角色处理都是在为授权处理做铺垫,在项目设计中运用最广的也是此部分,它对于用户的登陆、业务的操作权限、管理等权限起到判别、识别并授权的作用。通过授权进行深度防范是安全应用的一个重要策略。
本文主要对授权的基本操作进行一些说明。
在进行授权操作之前,要先建立授权规则。授权的要素一般包括:
http://www.cnblogs.com/Terrylee/archive/2005/10/27/263024.html
另说明,一般在做操作授权的过程中,可以通过SecurityCacheFactory和IToken来管理安全应用中的缓存,已继承IPrincipal和IIdentity。
本文主要对授权的基本操作进行一些说明。
在进行授权操作之前,要先建立授权规则。授权的要素一般包括:
I:Identities(身份)
R:Roles(角色)
Operators(关系操作符 AND OR NOT AND () )
建立规则部分请参阅TerryLee的安全应用程序块——进阶篇http://www.cnblogs.com/Terrylee/archive/2005/10/27/263024.html
Public Function RuleOK()
'本例仅是个简单的测试
'其中用户身份以及角色可以通过Security Cache中的Token
'进行继承,而不必手写赋值
Dim identity As String = "a"
Dim role As String = "OP"
'操作标识(授权规则)
Dim rule As String = "RulePrint"
'创建授权,其中括号部分中的内容为制定的操作项目,如果不写的话为默认
Dim ruleProvider As IAuthorizationProvider = AuthorizationFactory.GetAuthorizationProvider("RuleProvider")
'取用户、角色信息
Dim principal As IPrincipal = New GenericPrincipal(New GenericIdentity(identity), New String() {role})
If (Not ruleProvider Is Nothing) Then
'进行判断
Dim authorized As Boolean = ruleProvider.Authorize(principal, rule)
If (authorized) Then
label2.Text = "okok"
Else
End If
End If
End Function
'本例仅是个简单的测试
'其中用户身份以及角色可以通过Security Cache中的Token
'进行继承,而不必手写赋值
Dim identity As String = "a"
Dim role As String = "OP"
'操作标识(授权规则)
Dim rule As String = "RulePrint"
'创建授权,其中括号部分中的内容为制定的操作项目,如果不写的话为默认
Dim ruleProvider As IAuthorizationProvider = AuthorizationFactory.GetAuthorizationProvider("RuleProvider")
'取用户、角色信息
Dim principal As IPrincipal = New GenericPrincipal(New GenericIdentity(identity), New String() {role})
If (Not ruleProvider Is Nothing) Then
'进行判断
Dim authorized As Boolean = ruleProvider.Authorize(principal, rule)
If (authorized) Then
label2.Text = "okok"
Else
End If
End If
End Function
另说明,一般在做操作授权的过程中,可以通过SecurityCacheFactory和IToken来管理安全应用中的缓存,已继承IPrincipal和IIdentity。