.NET框架中基于角色的安全性(3)

作者:袖梨 2022-07-02
Permissions对象
    
      作为.NET安全性两个重要的分支,基于角色的安全性和代码访问安全都离不开一个重要的概念--权限(permissions)。在基于角色的安全性中,PrincipalPermission类用来检查调用线程的用户身份;而在代码访问安全中,从CodeAccessPermission派生的类则用来检查执行当前方法的所有线程各自的权限。
    
      权限对象通过已有的安全策略来说明操作是否被允许或拒绝。对于代码访问安全权限(不过这不适用于用户权限),.NET CLR提供了堆栈遍历机制来确定所有的调用堆栈帧是否具有应有的权限。需要注意的一点是,如果permission对象为null,那么我们可以将它和PermissionState.None视为等同的,说明没有提供任何权限。权限常用于下面这些场合:
    
      1、定义执行代码所需要的权限。
    
      2、系统的安全策略可以承认或拒绝代码请求的权限。
    
      3、代码通过Demand方法来保证(要求)它调用的代码具有所需的权限。
    
      4、代码还可以使用Assert,Deny或PermitOnly方法来跳过安全堆栈检查机制。
    
      另外,我们还可以使用成组的权限,在PermissionSet类中我们就可以使用各种不同权限组集合。
    
      下面我们还是先来看看最常用到的PrincipalPermission类,至于另外一个常用的CodeAccessPermission类,稍后将会在代码访问安全的内容中详细介绍。
    
      作为PrincipalPermission类实现的三个接口之一,IPermission接口在PrincipalPermission类中有了举足轻重的作用。IPermission接口提供了以下方法:

相关文章

精彩推荐