Freigeben über


PublisherIdentityPermission.Union-Methode

Diese Methode unterstützt die .NET Framework-Infrastruktur und ist nicht für die direkte Verwendung in Code bestimmt.

Erstellt eine Berechtigung als Gesamtmenge der aktuellen und der angegebenen Berechtigung.

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

Syntax

'Declaration
Public Overrides Function Union ( _
    target As IPermission _
) As IPermission
'Usage
Dim instance As PublisherIdentityPermission
Dim target As IPermission
Dim returnValue As IPermission

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

Parameter

  • target
    Eine Berechtigung, die mit der aktuellen Berechtigung kombiniert werden soll. Diese muss von demselben Typ wie die aktuelle Berechtigung sein.

Rückgabewert

Eine neue Berechtigung, die die Gesamtmenge der aktuellen und der angegebenen Berechtigung darstellt.

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.

– oder –

Die zwei Berechtigungen sind nicht identisch.

Hinweise

Das Ergebnis eines Aufrufs der Union-Methode ist eine Berechtigung, die sowohl alle durch die aktuelle als auch durch die angegebene Berechtigung dargestellten Operationen darstellt. Anforderungen, die eine der beiden Berechtigungen erfolgreich durchlaufen, durchlaufen auch deren Gesamtmenge erfolgreich.

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

Beispiel

Im folgenden Beispiel werden die Ergebnisse der Verwendung der Union-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 UnionDemo() As Boolean

        Dim retCode As Boolean = True

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

        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()
            Try
                While pubGen2.CreatePublisher(pubIdPerm2, publisher2)
                    If pubIdPerm2 Is Nothing Or pubIdPerm2.Certificate Is Nothing Then
                        GoTo ContinueWhile2
                    End If
                    p3 = pubIdPerm1.Union(pubIdPerm2)

                    If Not (p3 Is Nothing) Then
                        Console.WriteLine(("The union of " & pubIdPerm1.Certificate.GetName() & " and " & pubIdPerm2.Certificate.GetName() & " = " & CType(p3, PublisherIdentityPermission).Certificate.GetName()))
                    Else
                        Console.WriteLine(("The union of " & pubIdPerm1.Certificate.GetName() & " and " & pubIdPerm2.Certificate.GetName() & " = null."))
                    End If
ContinueWhile2:
                End While
            Catch e As Exception
                Console.WriteLine(e.Message)
            End Try

ContinueWhile1:
        End While


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

    bool retCode = true;

    String publisher1, publisher2;
    PublisherIdentityPermission pubIdPerm1, pubIdPerm2;
    IPermission 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;
            try
            {
                p3 = pubIdPerm1.Union(pubIdPerm2);

                if (p3 != null)
                {
                    Console.WriteLine("The union of " + pubIdPerm1.Certificate.GetName() + " and "
                        + pubIdPerm2.Certificate.GetName() + " = "
                        + ((PublisherIdentityPermission)p3).Certificate.GetName());
                }
                else
                {
                    Console.WriteLine("The union of " + pubIdPerm1.Certificate.GetName() + " and "
                        + pubIdPerm2.Certificate.GetName() + " = null.");
                }
            }
            catch (Exception e)
            {
                // Expected exception.
                Console.WriteLine("An exception was thrown for union :" + e.Message + "\n");
            }


        }
    }


    return retCode;

}
bool UnionDemo()
{
   bool retCode = true;
   String^ publisher1;
   String^ publisher2;
   PublisherIdentityPermission^ pubIdPerm1;
   PublisherIdentityPermission^ pubIdPerm2;
   IPermission^ 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 = pubIdPerm1->Union( pubIdPerm2 );
         if ( p3 != nullptr )
         {
            Console::WriteLine( "The union of {0} and {1} = {2}", pubIdPerm1->Certificate->GetName(), pubIdPerm2->Certificate->GetName(), (dynamic_cast<PublisherIdentityPermission^>(p3))->Certificate->GetName() );
         }
         else
         {
            Console::WriteLine( "The union of {0} and {1} = null.", pubIdPerm1->Certificate->GetName(), pubIdPerm2->Certificate->GetName() );
         }
      }
   }

   return retCode;
}

private boolean UnionDemo() 
{
    boolean retCode = true;
    String publisher1 = null;
    String publisher2 = null;
    PublisherIdentityPermission pubIdPerm1 = null;
    PublisherIdentityPermission pubIdPerm2 = null;
    IPermission 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 = pubIdPerm1.Union(pubIdPerm2);
            
            if (p3 != null) {
                Console.WriteLine(("The union of " 
                    + pubIdPerm1.get_Certificate().GetName() + " and " 
                    + pubIdPerm2.get_Certificate().GetName() + " = " 
                    + ((PublisherIdentityPermission)(p3)).get_Certificate().
                    GetName()));
            }
            else {
                Console.WriteLine(("The union of " 
                    + pubIdPerm1.get_Certificate().GetName() 
                    + " and " + pubIdPerm2.get_Certificate().GetName() 
                    + " = null."));
            }
        }
    } 
    return retCode ;
} //UnionDemo    

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