Freigeben über


UrlIdentityPermission.Union-Methode

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 UrlIdentityPermission
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 Url-Eigenschaft ist kein gültiger URL.

– oder –

Die zwei Berechtigungen sind nicht identisch, und eine Berechtigung stellt keine Teilmenge der jeweils anderen dar.

Hinweise

Das Ergebnis eines Aufrufs von Union ist eine Berechtigung, die sowohl den Zugriff auf URLs, die durch die aktuelle Berechtigung dargestellt werden, als auch den gesamten Zugriff auf den URL darstellt, der von der angegebenen Berechtigung dargestellt wird.

Die UrlIdentityPermission-Klasse unterstützt Set-Vorgänge (IsSubsetOf, Intersect und Union) nur dann, wenn die aktuelle Berechtigung der angegebenen Berechtigung entspricht oder wenn in einer der Berechtigungen das Platzhalterzeichen ("*") verwendet wird und eine Berechtigung eine Teilmenge der anderen darstellt.

Beispiel

Im folgenden Codebeispiel werden die Ergebnisse der Verwendung der Union-Methode veranschaulicht, jedoch nicht deren Verwendung. 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 UrlIdentityPermission-Klasse.

    ' Union creates a new permission that is the union of the current permission and 
    ' the specified permission.
    Private Function UnionDemo() As Boolean

        Dim returnValue As Boolean = True

        Dim url1 As String = ""
        Dim url2 As String = ""
        Dim urlIdPerm1, urlIdPerm2 As UrlIdentityPermission
        Dim urlIdPerm3 As IPermission

        Dim urlGen1 As New UrlGenerator()
        Dim urlGen2 As New UrlGenerator()

        urlGen1.ResetIndex()
        While urlGen1.CreateUrl(url1)
            urlIdPerm1 = New UrlIdentityPermission(url1)
            Console.WriteLine("**********************************************************" & ControlChars.Lf)
            urlGen2.ResetIndex()
            While urlGen2.CreateUrl(url2)

                Try
                    urlIdPerm2 = New UrlIdentityPermission(url2)
                    Dim firstPermission As String = IIf(url1 = "" Or url1 Is Nothing, "null", url1)
                    Dim secondPermission As String = IIf(url2 = "" Or url2 Is Nothing, "null", url2)
                    urlIdPerm3 = CType(urlIdPerm1.Union(urlIdPerm2), UrlIdentityPermission)
                    urlIdPerm3 = urlIdPerm1.Union(urlIdPerm2)

                    If urlIdPerm3 Is Nothing Then
                        Console.WriteLine("The union of " & firstPermission & "  and " & ControlChars.Lf & ControlChars.Tab & secondPermission & " is null.")
                    Else
                        Console.WriteLine("The union of " & firstPermission & "  and " & ControlChars.Lf & ControlChars.Tab & secondPermission & " = " & ControlChars.Lf & ControlChars.Tab & CType(urlIdPerm3, UrlIdentityPermission).Url.ToString())
                    End If
                Catch e As Exception
                    'Expected exception.
                    Console.WriteLine("An exception was thrown for union :" & e.ToString())
                End Try
ContinueWhile2:
            End While
ContinueWhile1:
        End While


        Return returnValue
    End Function 'UnionDemo
// Union creates a new permission that is the union of the current permission and
// the specified permission.
private bool UnionDemo()
{

    bool returnValue = true;

    string url1, url2;
    UrlIdentityPermission urlIdPerm1, urlIdPerm2;
    IPermission urlIdPerm3;

    UrlGenerator urlGen1 = new UrlGenerator();
    UrlGenerator urlGen2 = new UrlGenerator();

    urlGen1.ResetIndex();
    while (urlGen1.CreateUrl(out url1))
    {
        urlIdPerm1 = new UrlIdentityPermission(url1);

        Console.WriteLine("**********************************************************\n");
        urlGen2.ResetIndex();
        while (urlGen2.CreateUrl(out url2))
        {

            try
            {
                urlIdPerm2 = new UrlIdentityPermission(url2);

                string firstPermission = url1 == "" | url1 == null ? "null" : url1;
                string secondPermission = url2 == "" | url2 == null ? "null" : url2;
                urlIdPerm3 = (UrlIdentityPermission)urlIdPerm1.Union(urlIdPerm2);
                urlIdPerm3 = urlIdPerm1.Union(urlIdPerm2);

                if (urlIdPerm3 == null)
                {
                    Console.WriteLine("The union of " + firstPermission
                        + " and \n\t" + secondPermission + " is null.");
                }
                else
                {
                    Console.WriteLine("The union of " + firstPermission + " and \n\t"
                        + secondPermission +
                        " = \n\t" + ((UrlIdentityPermission)urlIdPerm3).Url.ToString());
                }
            }
            catch (Exception e)
            {   //Expected exception.
                Console.WriteLine("An exception was thrown for union :" + e.Message);
            }

        }

    }

    return returnValue;

}
// Union creates a new permission that is the union
// of the current permission and
// the specified permission.
private boolean UnionDemo()
{
    boolean returnValue = true;
    String url1[] = new String[1];
    String url2[] = new String[1];
    UrlIdentityPermission urlIdPerm1[] = new UrlIdentityPermission[1];
    UrlIdentityPermission urlIdPerm2[] = new UrlIdentityPermission[1];
    IPermission urlIdPerm3;
    UrlGenerator urlGen1 = new UrlGenerator();
    UrlGenerator urlGen2 = new UrlGenerator();

    urlGen1.ResetIndex();
    while (urlGen1.CreateUrl(urlIdPerm1, url1)) {
        if (urlIdPerm1 == null) {
            continue;
        }

        Console.WriteLine("******************************************" 
            + "****************\n");
        urlGen2.ResetIndex();
        while (urlGen2.CreateUrl(urlIdPerm2, url2)) {
            try {
                if (urlIdPerm2 == null) {
                    continue;
                }
                String firstPermission = (url1[0] == "" 
                    || url1[0] == null) ? "null" : url1[0];
                String secondPermission = (url2[0] == "" 
                    || url2[0] == null) ? "null" : url2[0];

                urlIdPerm3 = ((UrlIdentityPermission)(urlIdPerm1[0].
                Union(urlIdPerm2[0])));
                urlIdPerm3 = urlIdPerm1[0].Union(urlIdPerm2[0]);
                if (urlIdPerm3 == null) {
                    Console.WriteLine(("The union of " + firstPermission 
                        + " and \n\t" + secondPermission + " is null."));
                }
                else {
                    Console.WriteLine(("The union of " + firstPermission 
                        + " and \n\t" + secondPermission + " = \n\t" 
                        + ((UrlIdentityPermission)(urlIdPerm3)).
                        get_Url().ToString()));
                }
            }
            catch (System.Exception e) {
                Console.WriteLine(("An exception was thrown for union :" 
                    + e));
                returnValue = false;
            }
        }
    }
    return returnValue;
} //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

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