PrincipalPermission.Intersect(IPermission) 方法

定义

创建并返回一个权限,该权限是当前权限与指定权限的交集。

public:
 virtual System::Security::IPermission ^ Intersect(System::Security::IPermission ^ target);
public System.Security.IPermission Intersect (System.Security.IPermission target);
abstract member Intersect : System.Security.IPermission -> System.Security.IPermission
override this.Intersect : System.Security.IPermission -> System.Security.IPermission
Public Function Intersect (target As IPermission) As IPermission

参数

target
IPermission

要与当前权限相交的权限。 它必须与当前权限属于同一类型。

返回

表示当前权限和指定权限的交集的一个新权限。 如果交集为空,则此新权限将为 null

实现

例外

target 参数不为 null,并且是与当前权限不属于同一类的实例。

注解

由于两个用户永远不会相交,因此此方法对 PrincipalPermission没有用。 例如,

PrincipalPermission^ ppBob = gcnew PrincipalPermission("Bob", "Administrator");
PrincipalPermission^ ppLouise = gcnew PrincipalPermission("Louise", "Administrator");
IPermission^ pp1 = ppBob->Intersect(ppLouise);
PrincipalPermission ppBob = new PrincipalPermission("Bob", "Administrator");
PrincipalPermission ppLouise = new PrincipalPermission("Louise", "Administrator");
IPermission pp1 = ppBob.Intersect(ppLouise);
Dim ppBob As New PrincipalPermission("Bob", "Administrator")
Dim ppLouise As New PrincipalPermission("Louise", "Administrator")
Dim pp1 As IPermission = ppBob.Intersect(ppLouise)

等效于

IPermission^ pp1 = gcnew PrincipalPermission("", "Administrator");
IPermission pp1 = new PrincipalPermission("", "Administrator");
Dim pp1 As IPermission = New PrincipalPermission("", "Administrator")

因为没有标识可以同时表示 Bob 和 Louise。 实际上, pp1.Demand() 仅当允许未经身份验证的主体 (名称等于空字符串 (“”) ) “时,才成功执行管理员角色。

适用于