THEONE

清风徐来,逆风飞翔-感受生活中的每一天
随笔 - 13, 文章 - 0, 评论 - 18
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
        在EnterPrise SAB应用模块中,授权部分(Authorization)的处理是个非常关键的的部分,前期的用户处理、角色处理都是在为授权处理做铺垫,在项目设计中运用最广的也是此部分,它对于用户的登陆、业务的操作权限、管理等权限起到判别、识别并授权的作用。通过授权进行深度防范是安全应用的一个重要策略。
        本文主要对授权的基本操作进行一些说明。
        在进行授权操作之前,要先建立授权规则。授权的要素一般包括:

         IIdentities(身份)

         RRoles(角色)

        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 NothingThen

            
'进行判断
            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。