SecurityPermission.Union メソッド
アセンブリ: mscorlib (mscorlib.dll 内)
構文
Dim instance As SecurityPermission Dim target As IPermission Dim returnValue As IPermission returnValue = instance.Union(target)
戻り値
現在のアクセス許可と指定したアクセス許可の和集合を表す新しいアクセス許可。
解説
Union を呼び出すと、現在のアクセス許可と指定したアクセス許可の両方が表す操作をすべて表すアクセス許可が作成されます。いずれかのアクセス許可を要求し、その要求が満たされた場合、両者の和集合を表すアクセス許可に対する要求も満たされます。
次のコード例は、Union メソッドの動作を示すことを目的としており、メソッドの使用方法を示すためのものではありません。一般に、アクセス許可クラスのメソッドは、セキュリティ インフラストラクチャによって使用され、アプリケーションでの使用は意図されていません。ただし、次のコード例は、メソッドをコードから実行した場合に、どのように実行されるかを示したものです。コード全体については、SecurityPermission クラスのトピックを参照してください。
Private Function UnionDemo() As Boolean Dim returnValue As Boolean = True Dim Security1, Security2 As SecurityPermissionFlag Dim SecurityPerm1, SecurityPerm2 As SecurityPermission Dim SecurityPerm3 As IPermission Dim SecurityGen1 As New SecurityGenerator() Dim SecurityGen2 As New SecurityGenerator() SecurityGen1.ResetIndex() While SecurityGen1.GetSecurityFlag(Security1) SecurityPerm1 = New SecurityPermission(Security1) Console.WriteLine("**********************************************************" & ControlChars.Lf) SecurityGen2.ResetIndex() While SecurityGen2.GetSecurityFlag(Security2) SecurityPerm2 = New SecurityPermission(Security2) SecurityPerm3 = CType(SecurityPerm1.Union(SecurityPerm2), SecurityPermission) SecurityPerm3 = SecurityPerm1.Union(SecurityPerm2) If SecurityPerm3 Is Nothing Then Console.WriteLine(("The union of " & Security1 & " and " & Security2 & " is null.")) Else Console.WriteLine(("The union of " & SecurityPerm1.Flags.ToString() _ & " and " & SecurityPerm2.Flags.ToString() & " = " & CType(SecurityPerm3, SecurityPermission).Flags.ToString().ToString())) End If ContinueWhile2: End While ContinueWhile1: End While Return returnValue End Function 'UnionDemo
private bool UnionDemo() { bool returnValue = true; SecurityPermissionFlag security1,security2; SecurityPermission securityPerm1,securityPerm2; IPermission SecurityPerm3; SecurityGenerator SecurityGen1 = new SecurityGenerator(); SecurityGenerator SecurityGen2 = new SecurityGenerator(); SecurityGen1.ResetIndex(); while(SecurityGen1.GetSecurityFlag( out security1 )) { securityPerm1 = new SecurityPermission(security1); Console.WriteLine("**********************************************************\n"); SecurityGen2.ResetIndex(); while(SecurityGen2.GetSecurityFlag( out security2 )) { securityPerm2 = new SecurityPermission(security2); SecurityPerm3 = (SecurityPermission)securityPerm1.Union(securityPerm2); SecurityPerm3 = securityPerm1.Union(securityPerm2); if(SecurityPerm3 == null) { Console.WriteLine("The union of " + security1 + " and " + security2 + " is null." ); } else { Console.WriteLine("The union of " + securityPerm1.Flags + " and " + securityPerm2.Flags + " = " + ((SecurityPermission)SecurityPerm3).Flags.ToString()); } } } return returnValue; }
bool UnionDemo() { bool returnValue = true; SecurityPermissionFlag security1; SecurityPermissionFlag security2; SecurityPermission^ securityPerm1; SecurityPermission^ securityPerm2; IPermission^ SecurityPerm3; SecurityGenerator^ SecurityGen1 = gcnew SecurityGenerator; SecurityGenerator^ SecurityGen2 = gcnew SecurityGenerator; SecurityGen1->ResetIndex(); while ( SecurityGen1->GetSecurityFlag( &security1 ) ) { securityPerm1 = gcnew SecurityPermission(security1); Console::WriteLine( "**********************************************************\n" ); SecurityGen2->ResetIndex(); while ( SecurityGen2->GetSecurityFlag( &security2 ) ) { securityPerm2 = gcnew SecurityPermission(security2); SecurityPerm3 = dynamic_cast<SecurityPermission^>(securityPerm1->Union( securityPerm2 )); SecurityPerm3 = securityPerm1->Union( securityPerm2 ); if ( SecurityPerm3 == nullptr ) { Console::WriteLine( "The union of {0} and {1} is null.", security1, security2 ); } else { Console::WriteLine( "The union of {0} and {1} = {2}", securityPerm1->Flags, securityPerm2->Flags, (dynamic_cast<SecurityPermission^>(SecurityPerm3))->Flags ); } } } return returnValue; }
private boolean UnionDemo() { boolean returnValue = true; SecurityPermissionFlag security1[] = new SecurityPermissionFlag[1]; SecurityPermissionFlag security2[] = new SecurityPermissionFlag[1]; SecurityPermission securityPerm1[] = new SecurityPermission[1]; SecurityPermission securityPerm2[] = new SecurityPermission[1]; IPermission securityPerm3; SecurityGenerator securityGen1 = new SecurityGenerator(); SecurityGenerator securityGen2 = new SecurityGenerator(); securityGen1.ResetIndex(); while (securityGen1.CreateSecurity(securityPerm1, security1)) { if (securityPerm1[0] == null) { continue ; } Console.WriteLine("*******************************" + "***************************\n"); securityGen2.ResetIndex(); while (securityGen2.CreateSecurity(securityPerm2, security2)) { if (securityPerm2[0] == null) { continue ; } securityPerm3 =((SecurityPermission)(securityPerm1[0]. Union(securityPerm2[0]))); securityPerm3 = securityPerm1[0].Union(securityPerm2[0]); if (securityPerm3 == null) { Console.WriteLine(("The union of " + security1[0] + " and " + security2[0] + " is null.")); } else { Console.WriteLine(("The union of " + securityPerm1[0].get_Flags() + " and " + securityPerm2[0].get_Flags() + " = " + ((SecurityPermission)(securityPerm3)). get_Flags().ToString())); } } }return returnValue ; } //UnionDemo
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- SecurityPermission.Union メソッドのページへのリンク