基于角色的安全检查

定义了标识和主体对象后,可采用下列方法之一对其进行安全检查:

  • 使用命令性安全检查。

  • 使用声明性安全检查。

  • 直接访问 Principal 对象。

托管代码可使用命令式或声明式安全检查来确定以下内容:特定主体对象是否是已知角色的成员,是否具有已知的身份,或者是否表示一种角色中的一个已知身份。 若要通过命令式或声明式安全性进行安全检查,必须对适当构造的 PrincipalPermission 对象生成一个安全请求。 安全检查期间,公共语言运行时检查调用方的主体对象,确定其身份和角色是否与所请求的 PrincipalPermission 表示的身份和角色相匹配。 如果主体对象不匹配,则将引发 SecurityException。 (只检查当前线程的主体对象;PrincipalPermission 类不会像代码访问权限那样导致产生堆栈遍历。)

此外,可以直接访问主体对象的值,并在不使用 PrincipalPermission 对象的情况下执行检查。 在这种情况下,只需读取当前线程主体的值或使用 IsInRole 方法执行身份验证。

请参见

任务

如何:执行命令性安全检查

参考

PrincipalPermission

概念

执行声明式安全检查

直接访问主体对象

基于角色的安全性