Freigeben über


UIPermission.Intersect-Methode

Erstellt eine Berechtigung als Schnittmenge der aktuellen und der angegebenen Berechtigung und gibt diese zurück.

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

Syntax

'Declaration
Public Overrides Function Intersect ( _
    target As IPermission _
) As IPermission
'Usage
Dim instance As UIPermission
Dim target As IPermission
Dim returnValue As IPermission

returnValue = instance.Intersect(target)
public override IPermission Intersect (
    IPermission target
)
public:
virtual IPermission^ Intersect (
    IPermission^ target
) override
public IPermission Intersect (
    IPermission target
)
public override function Intersect (
    target : IPermission
) : IPermission

Parameter

  • target
    Eine Berechtigung, deren Schnittmenge mit der aktuellen Berechtigung gebildet wird. Diese muss von demselben Typ wie die aktuelle Berechtigung sein.

Rückgabewert

Eine neue Berechtigung, die die Schnittmenge der aktuellen und der angegebenen Berechtigung darstellt. Diese neue Berechtigung ist NULL (Nothing in Visual Basic), wenn die Schnittmenge leer ist.

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 Schnittmenge zweier Berechtigungen ist eine Berechtigung, die die von beiden Berechtigungen gemeinsam beschriebene Gruppe von Operationen wiedergibt. Insbesondere stellt diese unter den Werten in der aktuellen und der angegebenen Berechtigung die restriktivsten Werte von UIPermissionWindow und UIPermissionClipboard dar.

Beispiel

Das vollständige Beispiel finden Sie unter der UIPermission-Klasse.

    Private Function IntersectDemo() As Boolean
        Dim returnValue As Boolean = True
        Dim ui1, ui2 As UIPermissionWindow
        Dim cb1, cb2 As UIPermissionClipboard
        Dim uiIdPerm1, uiIdPerm2, uiIdPerm3 As UIPermission
        Dim uiGen1 As New UIGenerator()
        Dim uiGen2 As New UIGenerator()
        uiGen1.ResetIndex()
        While uiGen1.CreateUI(ui1, cb1)
            uiIdPerm1 = New UIPermission(ui1, cb1)
            Console.WriteLine("**********************************************************" & ControlChars.Lf)
            uiGen2.ResetIndex()

            While uiGen2.CreateUI(ui2, cb2)
                uiIdPerm2 = New UIPermission(ui2, cb2)
                uiIdPerm3 = CType(uiIdPerm1.Intersect(uiIdPerm2), UIPermission)
                If Not (uiIdPerm3 Is Nothing) Then
                    Console.WriteLine(("The intersection of " & uiIdPerm1.Window.ToString() & " and " _
                    & uiIdPerm1.Clipboard.ToString() & " with " & uiIdPerm2.Window.ToString() _
                    & " and " & uiIdPerm2.Clipboard.ToString() & " = " & ControlChars.Lf _
                    & ControlChars.Tab & CType(uiIdPerm3, UIPermission).Window.ToString() & " and " _
                    & CType(uiIdPerm3, UIPermission).Clipboard.ToString()))
                Else
                    Console.WriteLine(("The intersection of " & ui1.ToString() & " and " & cb1.ToString() _
                    & " with " & ui2.ToString() & " and " & cb2.ToString() & " is null."))
                End If
ContinueWhile2:
            End While
ContinueWhile1:
        End While

        Return returnValue
    End Function 'IntersectDemo
private bool IntersectDemo()
{
    bool returnValue = true;
    UIPermissionWindow ui1, ui2;
    UIPermissionClipboard cb1, cb2;
    UIPermission uiIdPerm1, uiIdPerm2, uiIdPerm3;
    UIGenerator uiGen1 = new UIGenerator();
    UIGenerator uiGen2 = new UIGenerator();
    uiGen1.ResetIndex();
    while (uiGen1.CreateUI( out ui1, out cb1))
    {
        uiIdPerm1 = new UIPermission(ui1, cb1);
        Console.WriteLine("**********************************************************\n");
        uiGen2.ResetIndex();

        while (uiGen2.CreateUI(out ui2, out cb2))
        {
            uiIdPerm2 = new UIPermission(ui2, cb2);
            uiIdPerm3 = (UIPermission)uiIdPerm1.Intersect(uiIdPerm2);
            if (uiIdPerm3 != null)
            {
                Console.WriteLine("The intersection of " + uiIdPerm1.Window + " and " + uiIdPerm1.Clipboard + " with " +
                    uiIdPerm2.Window + " and " + uiIdPerm2.Clipboard + " = \n\t" +
                    ((UIPermission)uiIdPerm3).Window.ToString() + " and " + ((UIPermission)uiIdPerm3).Clipboard.ToString());
            }
            else
            {
                Console.WriteLine("The intersection of " + ui1 + " and " + cb1 + " with " + ui2 + " and "
                    + cb2 + " is null.");
            }
        }
    }

    return returnValue;
}
bool IntersectDemo()
{
   bool returnValue = true;
   UIPermissionWindow ui1;
   UIPermissionWindow ui2;
   UIPermissionClipboard cb1;
   UIPermissionClipboard cb2;
   UIPermission^ uiIdPerm1;
   UIPermission^ uiIdPerm2;
   UIPermission^ uiIdPerm3;
   UIGenerator^ uiGen1 = gcnew UIGenerator;
   UIGenerator^ uiGen2 = gcnew UIGenerator;
   uiGen1->ResetIndex();
   while ( uiGen1->CreateUI(   &ui1,  &cb1 ) )
   {
      uiIdPerm1 = gcnew UIPermission( ui1, cb1 );

      Console::WriteLine( "**********************************************************\n" );
      uiGen2->ResetIndex();
      while ( uiGen2->CreateUI(  &ui2,  &cb2 ) )
      {
         uiIdPerm2 = gcnew UIPermission( ui2, cb2 );
         uiIdPerm3 = dynamic_cast<UIPermission^>(uiIdPerm1->Intersect( uiIdPerm2 ));
         if ( uiIdPerm3 != nullptr )
         {
            Console::WriteLine( "The intersection of {0} and {1} with {2} and {3} = \n\t{4} and {5}", uiIdPerm1->Window, uiIdPerm1->Clipboard, uiIdPerm2->Window, uiIdPerm2->Clipboard, (dynamic_cast<UIPermission^>(uiIdPerm3))->Window.ToString(), (dynamic_cast<UIPermission^>(uiIdPerm3))->Clipboard.ToString() );
         }
         else
         {
            Console::WriteLine( "The intersection of {0} and {1} with {2} and {3} is null.", ui1, cb1, ui2, cb2 );
         }
      }
   }

   return returnValue;
}

// Intersect creates and returns a new permission that is the 
// intersection of the current permission and the permission specified.
private boolean IntersectDemo()
{
    boolean returnValue = true;
    UIPermissionWindow ui1[] = new UIPermissionWindow[1];
    UIPermissionWindow ui2[] = new UIPermissionWindow[1];
    UIPermissionClipboard cb1[] = new UIPermissionClipboard[1];
    UIPermissionClipboard cb2[] = new UIPermissionClipboard[1];
    UIPermission uiIdPerm1[] = new UIPermission[1];
    UIPermission uiIdPerm2[] = new UIPermission[1];
    UIPermission uiIdPerm3 = null;
    UIGenerator uiGen1 = new UIGenerator();
    UIGenerator uiGen2 = new UIGenerator();

    uiGen1.ResetIndex();
    while (uiGen1.CreateUI(uiIdPerm1, ui1, cb1)) {
        if (uiIdPerm1[0] == null) {
            continue;
        }
        Console.WriteLine("************************************" 
            + "**********************\n");
        uiGen2.ResetIndex();
        while (uiGen2.CreateUI(uiIdPerm2, ui2, cb2)) {
            if (uiIdPerm2[0] == null) {
                continue;
            }
            uiIdPerm3 = 
                ((UIPermission)(uiIdPerm1[0].Intersect(uiIdPerm2[0])));
            if (uiIdPerm3 != null) {
                Console.WriteLine(("The intersection of " 
                    + uiIdPerm1[0].get_Window() + " and " 
                    + uiIdPerm1[0].get_Clipboard() + " with " 
                    + uiIdPerm2[0].get_Window() + " and " 
                    + uiIdPerm2[0].get_Clipboard() + " = \n\t" 
                    + ((UIPermission)(uiIdPerm3)).get_Window().ToString() 
                    + " and " + ((UIPermission)(uiIdPerm3)).get_Clipboard().
                    ToString()));
            }
            else {
                Console.WriteLine(("The intersection of " 
                    + ui1[0] + " and " + cb1[0] + " with " + ui2[0] 
                    + " and " + cb2[0] + " is null."));
            }
        }
    }
    return returnValue;
} //IntersectDemo

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

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