PrincipalPermission.Intersect(IPermission) メソッド


現在のアクセス許可と指定したアクセス許可の積集合となるアクセス許可を作成して返します。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. 積集合が空の場合、この新しいアクセス許可は null です。This new permission will be null if the intersection is empty.



target パラメーターは null ではなく、現在のアクセス許可と同じクラスのインスタンスでもありません。The target parameter is not null and is not an instance of the same class as the current permission.


2人のユーザーが交差しないため、この方法は PrincipalPermissionには役立ちません。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")

Bob と Louise の両方を同時に表すことができないためです。because no identity can simultaneously represent both Bob and Louise. 実際には、pp1.Demand() は、認証されていないプリンシパル (名前が空の文字列 ("")) が管理者ロールで動作することが許可されている場合にのみ成功します。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.