PrincipalPermission.Intersect(IPermission) Method


Creates and returns a permission that is the intersection of the current permission and the specified permission.

 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



A permission to intersect with the current permission. It must be of the same type as the current permission.



A new permission that represents the intersection of the current permission and the specified permission. This new permission will be null if the intersection is empty.



The target parameter is not null and is not an instance of the same class as the current permission.


Because two users never intersect, this method is not useful for PrincipalPermission. For example,

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)

is equivalent to

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

because no identity can simultaneously represent both Bob and Louise. In effect, pp1.Demand() only succeeds if an unauthenticated principal (with name equal to the empty string ("")) is allowed to act in the Administrator role.

Applies to