Freigeben über


FileIOPermission.IsSubsetOf-Methode

Bestimmt, ob die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist.

Namespace: System.Security.Permissions
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Overrides Function IsSubsetOf ( _
    target As IPermission _
) As Boolean
'Usage
Dim instance As FileIOPermission
Dim target As IPermission
Dim returnValue As Boolean

returnValue = instance.IsSubsetOf(target)
public override bool IsSubsetOf (
    IPermission target
)
public:
virtual bool IsSubsetOf (
    IPermission^ target
) override
public boolean IsSubsetOf (
    IPermission target
)
public override function IsSubsetOf (
    target : IPermission
) : boolean

Parameter

  • target
    Eine Berechtigung, für die geprüft werden soll, ob sie eine Teilmenge einer anderen Berechtigung ist. Diese Berechtigung muss von demselben Typ wie die aktuelle Berechtigung sein.

Rückgabewert

true, wenn die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist, andernfalls false.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentException

Der target-Parameter ist nicht NULL (Nothing in Visual Basic) und nicht von demselben Typ wie die aktuelle Berechtigung.

Hinweise

Die aktuelle Berechtigung ist eine Teilmenge der angegebenen Berechtigung, wenn die aktuelle Berechtigung eine Gruppe von Operationen angibt, die in der angegebenen Berechtigung enthalten ist. Beispielsweise ist eine Berechtigung, die den Lesezugriff auf C:\Beispiel.txt darstellt, eine Teilmenge einer Berechtigung, die den Lesezugriff auf C:\ darstellt. Wenn diese Methode true zurückgibt, stellt die aktuelle Berechtigung keine weitergehenden Zugriffsrechte für die geschützte Ressource dar als die angegebene Berechtigung.

Beispiel

    Private Function IsSubsetOfDemo() As Boolean

        Dim returnValue As Boolean = True
        Dim fileIO1 As String = ""
        Dim fileIO2 As String = ""
        Dim fileIOPerm1, fileIOPerm2 As FileIOPermission

        Dim fileIOGen1 As New FileIOGenerator()
        Dim fileIOGen2 As New FileIOGenerator()

        fileIOGen1.ResetIndex()
        While fileIOGen1.CreateFilePath(fileIO1)
            If fileIO1 = "" Then
                fileIOPerm1 = New FileIOPermission(PermissionState.None)
            Else
                fileIOPerm1 = New FileIOPermission(FileIOPermissionAccess.AllAccess, fileIO1)
            End If

            Console.WriteLine("**********************************************************" & ControlChars.Lf)

            fileIOGen2.ResetIndex()

            While fileIOGen2.CreateFilePath(fileIO2)
                If fileIO2 = "" Then
                    fileIOPerm2 = New FileIOPermission(PermissionState.None)
                Else
                    fileIOPerm2 = New FileIOPermission(FileIOPermissionAccess.AllAccess, fileIO2)
                End If
                Dim firstPermission As String = IIf(fileIO1 = "" Or fileIO1 Is Nothing, "null", fileIO1)
                Dim secondPermission As String = IIf(fileIO2 = "" Or fileIO2 Is Nothing, "null", fileIO2)
                If fileIOPerm2 Is Nothing Then
                    GoTo ContinueWhile2
                End If
                Try
                    If fileIOPerm1.IsSubsetOf(fileIOPerm2) Then

                        Console.WriteLine((firstPermission & " is a subset of " & secondPermission & ControlChars.Lf))
                    Else
                        Console.WriteLine((firstPermission & " is not a subset of " & secondPermission & ControlChars.Lf))
                    End If

                Catch e As Exception
                    Console.WriteLine(IIf("An exception was thrown for subset :" & fileIO1 = "", "null", IIf(fileIO1 & ControlChars.Lf & fileIO2 = "", "null", fileIO2 & ControlChars.Lf & e.ToString())))
                End Try
ContinueWhile2:
            End While
ContinueWhile1:
        End While
        Return returnValue
    End Function 'IsSubsetOfDemo
private bool IsSubsetOfDemo()
{

    bool returnValue = true;

    string fileIO1, fileIO2;
    FileIOPermission fileIOPerm1, fileIOPerm2;

    FileIOGenerator fileIOGen1 = new FileIOGenerator();
    FileIOGenerator fileIOGen2 = new FileIOGenerator();

    fileIOGen1.ResetIndex();
    while (fileIOGen1.CreateFilePath(out fileIO1 ))
    {
        if(fileIO1 == "")
            fileIOPerm1 = new FileIOPermission(PermissionState.None);
        else
        fileIOPerm1 = new FileIOPermission(FileIOPermissionAccess.AllAccess, fileIO1);

        Console.WriteLine("**********************************************************\n");

        fileIOGen2.ResetIndex();

        while (fileIOGen2.CreateFilePath(out fileIO2))
        {
            if (fileIO2 == "")
                fileIOPerm2 = new FileIOPermission(PermissionState.None);
            else
                fileIOPerm2 = new FileIOPermission(FileIOPermissionAccess.AllAccess, fileIO2);
            string firstPermission = fileIO1 == "" | fileIO1 == null ? "null" : fileIO1;
            string secondPermission = fileIO2 == "" | fileIO2 == null ? "null" : fileIO2;
            if (fileIOPerm2 == null) continue;
            try
            {
                if (fileIOPerm1.IsSubsetOf(fileIOPerm2))
                {

                    Console.WriteLine(firstPermission + " is a subset of " + secondPermission + "\n");
                }
                else
                {
                    Console.WriteLine(firstPermission + " is not a subset of " + secondPermission + "\n");
                }

            }
            catch (Exception e)
            {
                Console.WriteLine("An exception was thrown for subset :" + fileIO1 == "" ? "null" : fileIO1 + "\n" +
                    fileIO2 == "" ? "null" : fileIO2 + "\n" + e);
            }
        }
    }
    return returnValue;
}
bool IsSubsetOfDemo()
{
   bool returnValue = true;
   String^ fileIO1;
   String^ fileIO2;
   FileIOPermission^ fileIOPerm1;
   FileIOPermission^ fileIOPerm2;
   FileIOGenerator^ fileIOGen1 = gcnew FileIOGenerator;
   FileIOGenerator^ fileIOGen2 = gcnew FileIOGenerator;
   fileIOGen1->ResetIndex();
   while ( fileIOGen1->CreateFilePath(  &fileIO1 ) )
   {
       if (fileIO1 == "")
           fileIOPerm1 = gcnew FileIOPermission(PermissionState::None);
       else
           fileIOPerm1 = gcnew FileIOPermission(FileIOPermissionAccess::AllAccess, fileIO1);

      Console::WriteLine( "**********************************************************\n" );
      fileIOGen2->ResetIndex();
      while ( fileIOGen2->CreateFilePath( &fileIO2 ) )
      {
         if (fileIO2 == "")
             fileIOPerm2 = gcnew FileIOPermission(PermissionState::None);
         else
           fileIOPerm2 = gcnew FileIOPermission(FileIOPermissionAccess::AllAccess, fileIO2);
         String^ firstPermission = fileIO1 == "" || fileIO1 == nullptr ? "null" : fileIO1;
         String^ secondPermission = fileIO2 == "" || fileIO2 == nullptr ? "null" : fileIO2;
         if ( fileIOPerm2 == nullptr )
                     continue;
         try
         {
            if ( fileIOPerm1->IsSubsetOf( fileIOPerm2 ) )
            {
               Console::WriteLine( "{0} is a subset of {1}\n", firstPermission, secondPermission );
            }
            else
            {
               Console::WriteLine( "{0} is not a subset of {1}\n", firstPermission, secondPermission );
            }
         }
         catch ( Exception^ e ) 
         {
            Console::WriteLine( "An exception was thrown for subset :{0}\n{1}\n{2}", (fileIO1->Equals( "" ) ? "null" : fileIO1), (fileIO2->Equals( "" ) ? "null" : fileIO2), e );
         }

      }
   }

   return returnValue;
}

// IsSubsetOf determines whether the current permission is a 
// subset of the specified permission.
// This method compares various FileIOPermission paths with 
// FileIOPermissionAccess set to AllAccess.
private boolean IsSubsetOfDemo() 
{
    boolean returnValue = true;
    String fileIO1[] = new String[1] ;
    String fileIO2[] = new String[1] ;
    FileIOPermission fileIOPerm1[] = new FileIOPermission[1] ;
    FileIOPermission fileIOPerm2[] = new FileIOPermission[1] ;
    
    FileIOGenerator fileIOGen1 =  new FileIOGenerator();
    FileIOGenerator fileIOGen2 =  new FileIOGenerator();
    
    fileIOGen1.ResetIndex();
    while(fileIOGen1.CreateFilePath(fileIOPerm1, fileIO1, 
        FileIOPermissionAccess.AllAccess)) {
        if (fileIOPerm1[0] == null) {
            continue ;
        }         
        Console.WriteLine("***********************" 
            + "***********************************\n");
        fileIOGen2.ResetIndex();
        
        while(fileIOGen2.CreateFilePath(fileIOPerm2, fileIO2, 
            FileIOPermissionAccess.AllAccess)) {
            String firstPermission = (fileIO1[0].equals("") == 
                true | fileIO1[0] == null) ? "null" : fileIO1[0];
            String secondPermission = (fileIO2[0].equals("") == 
                true | fileIO2[0] == null) ? "null" : fileIO2[0];
            if (fileIOPerm2[0] == null) {
                continue ;
            }
            try {
                if (fileIOPerm1[0].IsSubsetOf(fileIOPerm2[0])) {
                    Console.WriteLine((firstPermission 
                        + " is a subset of " 
                        + secondPermission + "\n"));
                }
                else {
                    Console.WriteLine((firstPermission 
                        + " is not a subset of " 
                        + secondPermission + "\n"));
                }
            } 
            catch(System.Exception e) {
                Console.WriteLine(("An exception was thrown for subset :" 
                    + ((fileIO1[0].equals("") == true) ? 
                    "null" : (fileIO1[0] + "\n" 
                    + ((fileIO2[0].equals("") == true) ? 
                    "null" : fileIO2[0]) + "\n" + e))));
            }
        }
    }
    return returnValue ;
} //IsSubsetOfDemo   

Plattformen

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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

FileIOPermission-Klasse
FileIOPermission-Member
System.Security.Permissions-Namespace