Freigeben über


PublisherIdentityPermission.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 PublisherIdentityPermission
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 gehört nicht zum gleichen Typ wie die aktuelle Berechtigung.

Hinweise

Die Schnittmenge zweier Berechtigungen ist eine Berechtigung, die die von beiden Berechtigungen gemeinsam beschriebene Gruppe von Operationen wiedergibt. Eine Anforderung über die Schnittmenge ist nur erfolgreich, wenn sie beide ursprünglichen Berechtigungen erfolgreich durchläuft.

PublisherIdentityPermission unterstützt Set-Operationen (IsSubsetOf, Intersect und Union) nur, wenn die aktuelle und die angegebene Berechtigung identisch sind.

Beispiel

Im folgenden Beispiel werden die Ergebnisse der Verwendung der Intersect-Methode, jedoch nicht deren Verwendung veranschaulicht. Dieser Code ist Teil eines umfangreicheren Beispiels. Sie sollten das gesamte Beispiel erstellen und ausführen und dann die Ausgabe anzeigen. Das vollständige Beispiel finden Sie in der PublisherIdentityPermission-Klasse.

    Private Function IntersectDemo() As Boolean

        Dim retCode As Boolean = True

        Dim publisher1, publisher2 As [String]
        Dim pubIdPerm1, pubIdPerm2, p3 As PublisherIdentityPermission

        Dim pubGen1 As New PublisherGenerator()
        Dim pubGen2 As New PublisherGenerator()

        pubGen1.ResetIndex()
        While pubGen1.CreatePublisher(pubIdPerm1, publisher1)
            If pubIdPerm1 Is Nothing Or pubIdPerm1.Certificate Is Nothing Then
                GoTo ContinueWhile1
            End If
            pubGen2.ResetIndex()
            While pubGen2.CreatePublisher(pubIdPerm2, publisher2)
                If pubIdPerm2 Is Nothing Or pubIdPerm2.Certificate Is Nothing Then
                    GoTo ContinueWhile2
                End If
                p3 = CType(pubIdPerm1.Intersect(pubIdPerm2), PublisherIdentityPermission)
                If Not (p3 Is Nothing) AndAlso Not (p3.Certificate Is Nothing) Then

                    Console.WriteLine(("The intersection of " & pubIdPerm1.Certificate.GetName() & " and  " & pubIdPerm2.Certificate.GetName() & " = " & CType(p3, PublisherIdentityPermission).Certificate.GetName()))
                Else
                    Console.WriteLine(("The intersection of " & pubIdPerm1.Certificate.GetName() & " and " & pubIdPerm2.Certificate.GetName() & " is null."))
                End If
ContinueWhile2:
            End While
ContinueWhile1:
        End While


        Return retCode
    End Function 'IntersectDemo
private bool IntersectDemo()
{

    bool retCode = true;

    String publisher1, publisher2;
    PublisherIdentityPermission pubIdPerm1, pubIdPerm2, p3;

    PublisherGenerator pubGen1 = new PublisherGenerator();
    PublisherGenerator pubGen2 = new PublisherGenerator();

    pubGen1.ResetIndex();
    while (pubGen1.CreatePublisher(out pubIdPerm1, out publisher1))
    {
        if (pubIdPerm1 == null | pubIdPerm1.Certificate == null) continue;
        pubGen2.ResetIndex();
        while (pubGen2.CreatePublisher(out pubIdPerm2, out publisher2))
        {
            if (pubIdPerm2 == null | pubIdPerm2.Certificate == null) continue;
            p3 = (PublisherIdentityPermission)pubIdPerm1.Intersect(pubIdPerm2);
            if (p3 != null && p3.Certificate != null)
            {

                Console.WriteLine("The intersection of " + pubIdPerm1.Certificate.GetName() + " and " +
                    pubIdPerm2.Certificate.GetName() + " = " +
                    ((PublisherIdentityPermission)p3).Certificate.GetName());
            }
            else
            {
                Console.WriteLine("The intersection of " + pubIdPerm1.Certificate.GetName() + " and " +
                    pubIdPerm2.Certificate.GetName() + " is null.");
            }

        }
    }


    return retCode;

}
bool IntersectDemo()
{
   bool retCode = true;
   String^ publisher1;
   String^ publisher2;
   PublisherIdentityPermission^ pubIdPerm1;
   PublisherIdentityPermission^ pubIdPerm2;
   PublisherIdentityPermission^ p3;
   PublisherGenerator^ pubGen1 = gcnew PublisherGenerator;
   PublisherGenerator^ pubGen2 = gcnew PublisherGenerator;
   pubGen1->ResetIndex();
   while ( pubGen1->CreatePublisher(  &pubIdPerm1,  &publisher1 ) )
   {
      if ( pubIdPerm1 == nullptr || pubIdPerm1->Certificate == nullptr )
            continue;

      pubGen2->ResetIndex();
      while ( pubGen2->CreatePublisher(  &pubIdPerm2,  &publisher2 ) )
      {
         if ( pubIdPerm2 == nullptr || pubIdPerm2->Certificate == nullptr )
                  continue;
         p3 = dynamic_cast<PublisherIdentityPermission^>(pubIdPerm1->Intersect( pubIdPerm2 ));
         if ( p3 != nullptr && p3->Certificate != nullptr )
         {
            Console::WriteLine( "The intersection of {0} and  {1} = {2}", pubIdPerm1->Certificate->GetName(), pubIdPerm2->Certificate->GetName(), (dynamic_cast<PublisherIdentityPermission^>(p3))->Certificate->GetName() );
         }
         else
         {
            Console::WriteLine( "The intersection of {0} and {1} is null.", pubIdPerm1->Certificate->GetName(), pubIdPerm2->Certificate->GetName() );
         }
      }
   }

   return retCode;
}

private boolean IntersectDemo() 
{
    boolean retCode = true;
    String publisher1 = null;
    String publisher2 = null;
    PublisherIdentityPermission pubIdPerm1 = null;
    PublisherIdentityPermission pubIdPerm2 = null;
    PublisherIdentityPermission p3;
    
    PublisherGenerator pubGen1 =  new PublisherGenerator();
    PublisherGenerator pubGen2 =  new PublisherGenerator();
    
    pubGen1.ResetIndex();
    while(pubGen1.CreatePublisher(pubIdPerm1, publisher1)) {
            if (pubIdPerm1 == null | pubIdPerm1.get_Certificate() 
                == null) {
                continue;
            }
            pubGen2.ResetIndex();
            while(pubGen2.CreatePublisher(pubIdPerm2, publisher2)) {
            if (pubIdPerm2 == null | pubIdPerm2.get_Certificate() 
                == null) {
                continue;
            }
            p3 =((PublisherIdentityPermission)(
            pubIdPerm1.Intersect(pubIdPerm2)));
            if (p3 != null && p3.get_Certificate() != null) {
                Console.WriteLine(("The intersection of " 
                    + pubIdPerm1.get_Certificate().GetName() 
                    + " and " + pubIdPerm2.get_Certificate().GetName() 
                    + " = " + ((PublisherIdentityPermission)(p3)).
                    get_Certificate().GetName()));
            }
            else {
                Console.WriteLine(("The intersection of " 
                    + pubIdPerm1.get_Certificate().GetName() 
                    + " and " + pubIdPerm2.get_Certificate().GetName() 
                    + " is null."));
            }
        }
    } 
    return retCode ;
} //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

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