SecurityPermission.IsSubsetOf メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As SecurityPermission Dim target As IPermission Dim returnValue As Boolean returnValue = instance.IsSubsetOf(target)
戻り値
現在のアクセス許可が、指定したアクセス許可のサブセットである場合は true。それ以外の場合は false。


現在のアクセス許可で指定される操作の集合が、指定したアクセス許可に完全に含まれる場合、現在のアクセス許可オブジェクトは指定したアクセス許可オブジェクトのサブセットです。たとえば、C:\example.txt へのアクセス権を表すアクセス許可は、C:\ へのアクセス権を表すアクセス許可のサブセットです。このメソッドが true を返す場合、現在のアクセス許可が保護されたリソースに対して表すアクセス権は、指定したアクセス許可が表すアクセス権と同じか、またはそのサブセットです

次のコード例は、IsSubsetOf メソッドの動作を示すことを目的としており、メソッドの使用方法を示すためのものではありません。一般に、アクセス許可クラスのメソッドは、セキュリティ インフラストラクチャによって使用され、アプリケーションでの使用は意図されていません。ただし、次のコード例は、メソッドをコードから実行した場合に、どのように実行されるかを示したものです。コード全体については、SecurityPermission クラスのトピックを参照してください。
Private Function IsSubsetOfDemo() As Boolean Dim returnValue As Boolean = True Dim Security1, Security2 As SecurityPermissionFlag Dim SecurityPerm1, SecurityPerm2 As SecurityPermission Dim SecurityGen1 As New SecurityGenerator() Dim SecurityGen2 As New SecurityGenerator() SecurityGen1.ResetIndex() While SecurityGen1.GetSecurityFlag(Security1) SecurityPerm1 = New SecurityPermission(Security1) SecurityGen2.ResetIndex() Console.WriteLine("********************************************************" & ControlChars.Lf) While SecurityGen2.GetSecurityFlag(Security2) SecurityPerm2 = New SecurityPermission(Security2) Try If SecurityPerm1.IsSubsetOf(SecurityPerm2) Then Console.WriteLine((SecurityPerm1.Flags.ToString().ToString() _ & " is a subset of " & SecurityPerm2.Flags.ToString())) Else Console.WriteLine((SecurityPerm1.Flags.ToString() & " is not a subset of " _ & SecurityPerm2.Flags.ToString())) End If Catch e As Exception Console.WriteLine(("An exception was thrown for subset :" & SecurityPerm1.ToString() _ & ControlChars.Lf & SecurityPerm2.ToString() & ControlChars.Lf & e.ToString())) returnValue = False End Try ContinueWhile2: End While ContinueWhile1: End While Return returnValue End Function 'IsSubsetOfDemo
private bool IsSubsetOfDemo() { bool returnValue = true; SecurityPermissionFlag security1,security2; SecurityPermission securityPerm1,securityPerm2; SecurityGenerator SecurityGen1 = new SecurityGenerator(); SecurityGenerator SecurityGen2 = new SecurityGenerator(); SecurityGen1.ResetIndex(); while(SecurityGen1.GetSecurityFlag( out security1 )) { securityPerm1 = new SecurityPermission(security1); SecurityGen2.ResetIndex(); Console.WriteLine("********************************************************\n"); while(SecurityGen2.GetSecurityFlag( out security2 )) { securityPerm2 = new SecurityPermission(security2); try { if (securityPerm1.IsSubsetOf(securityPerm2)) { Console.WriteLine(securityPerm1.Flags + " is a subset of " + securityPerm2.Flags); } else { Console.WriteLine(securityPerm1.Flags + " is not a subset of " + securityPerm2.Flags); } } catch(Exception e) { Console.WriteLine("An exception was thrown for subset :" + securityPerm1 + "\n" + securityPerm2 +"\n" + e); returnValue=false; } } } return returnValue; }
bool IsSubsetOfDemo() { bool returnValue = true; SecurityPermissionFlag security1; SecurityPermissionFlag security2; SecurityPermission^ securityPerm1; SecurityPermission^ securityPerm2; SecurityGenerator^ SecurityGen1 = gcnew SecurityGenerator; SecurityGenerator^ SecurityGen2 = gcnew SecurityGenerator; SecurityGen1->ResetIndex(); while ( SecurityGen1->GetSecurityFlag( &security1 ) ) { securityPerm1 = gcnew SecurityPermission(security1); SecurityGen2->ResetIndex(); Console::WriteLine( "********************************************************\n" ); while ( SecurityGen2->GetSecurityFlag( &security2 ) ) { securityPerm2 = gcnew SecurityPermission(security2); try { if ( securityPerm1->IsSubsetOf( securityPerm2 ) ) { Console::WriteLine( "{0} is a subset of {1}", securityPerm1->Flags, securityPerm2->Flags ); } else { Console::WriteLine( "{0} is not a subset of {1}", securityPerm1->Flags, securityPerm2->Flags ); } } catch ( Exception^ e ) { Console::WriteLine( "An exception was thrown for subset :{0}\n{1}\n{2}", securityPerm1, securityPerm2, e ); returnValue = false; } } } return returnValue; }
private boolean IsSubsetOfDemo() { boolean returnValue = true; SecurityPermissionFlag security1[] = new SecurityPermissionFlag[1]; SecurityPermissionFlag security2[] = new SecurityPermissionFlag[1]; SecurityPermission securityPerm1[] = new SecurityPermission[1]; SecurityPermission securityPerm2[] = new SecurityPermission[1]; SecurityGenerator securityGen1 = new SecurityGenerator(); SecurityGenerator securityGen2 = new SecurityGenerator(); securityGen1.ResetIndex(); while (securityGen1.CreateSecurity(securityPerm1, security1)) { if (securityPerm1[0] == null) { continue ; } securityGen2.ResetIndex(); Console.WriteLine("****************************" + "****************************\n"); while (securityGen2.CreateSecurity(securityPerm2, security2)) { if (securityPerm2[0] == null) { continue ; } try { if (securityPerm1[0].IsSubsetOf(securityPerm2[0])) { Console.WriteLine((securityPerm1[0].get_Flags() + " is a subset of " + securityPerm2[0].get_Flags())); } else { Console.WriteLine((securityPerm1[0].get_Flags() + " is not a subset of " + securityPerm2[0].get_Flags())); } } catch(System.Exception e) { Console.WriteLine(("An exception was " + "thrown for subset :" + securityPerm1[0] + "\n" + securityPerm2[0] + "\n" + e)); returnValue = false; } } } return returnValue ; } //IsSubsetOfDemo

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.IsSubsetOf メソッドのページへのリンク