Freigeben über


UrlIdentityPermission.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 UrlIdentityPermission
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.

– oder –

Die URL-Eigenschaft ist kein gültiger URL.

Hinweise

Die Schnittmenge zweier Berechtigungen ist eine Berechtigung, die dem von beiden Berechtigungen gemeinsam beschriebenen Zugriff auf URLs darstellt. Eine Anforderung über die Schnittmenge ist nur erfolgreich, wenn sie beide ursprünglichen Berechtigungen erfolgreich durchläuft. Die Schnittmenge einer Berechtigung, die z. B. den Zugriff auf https://www.fourthcoffee.com/process/grind.htm darstellt, und einer Berechtigung, die den Zugriff auf https://www.fourthcoffee.com/\* darstellt, ist eine Berechtigung, die den Zugriff auf https://www.fourthcoffee.com/process/grind.htm darstellt.

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

Beispiel

Im folgenden Beispiel werden die Ergebnisse der Verwendung der Intersect-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.

    ' Intersect creates and returns a new permission that is the intersection of the 
    ' current permission and the permission specified.
    Private Function IntersectDemo() As Boolean

        Dim returnValue As Boolean = True

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

        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()
            Console.WriteLine("********************************************************\n")
            While urlGen2.CreateUrl(url2)
                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)
                Try

                    urlIdPerm3 = CType(urlIdPerm1.Intersect(urlIdPerm2), UrlIdentityPermission)
                    If Not (urlIdPerm3 Is Nothing) AndAlso Not (urlIdPerm3.Url Is Nothing) Then

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

        Return returnValue
    End Function 'IntersectDemo
// Intersect creates and returns a new permission that is the intersection of the
// current permission and the permission specified.
private bool IntersectDemo()
{

    bool returnValue = true;

    string url1, url2;
    UrlIdentityPermission urlIdPerm1, urlIdPerm2, 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();
        Console.WriteLine("********************************************************\n");
        while (urlGen2.CreateUrl(out url2))
        {
            urlIdPerm2 = new UrlIdentityPermission(url2);
            string firstPermission = url1 == "" | url1 == null ? "null" : url1;
            string secondPermission = url2 == "" | url2 == null ? "null" : url2;
            try
            {

                urlIdPerm3 = (UrlIdentityPermission)urlIdPerm1.Intersect(urlIdPerm2);
                if (urlIdPerm3 != null && urlIdPerm3.Url != null)
                {

                    Console.WriteLine("The intersection of " + firstPermission
                        + " and \n\t" + secondPermission +
                        " = \n\t" + ((UrlIdentityPermission)urlIdPerm3).Url.ToString());
                }
                else
                {
                    Console.WriteLine("The intersection of " + firstPermission + " and \n\t"
                        + secondPermission + " is null. ");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("An exception was thrown for the intersection : " + e);
                returnValue = false;
            }
        }
    }

    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;
    String url1[] = new String[1];
    String url2[] = new String[1];

    UrlIdentityPermission urlIdPerm1[] = new UrlIdentityPermission[1];
    UrlIdentityPermission urlIdPerm2[] = new UrlIdentityPermission[1];
    UrlIdentityPermission urlIdPerm3[] = new UrlIdentityPermission[1];

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

    urlGen1.ResetIndex();
    while (urlGen1.CreateUrl(urlIdPerm1, url1)) {
        if (urlIdPerm1 == null) {
            continue;
        }
        Console.WriteLine("***************************************" 
            + "*******************\n");
        urlGen2.ResetIndex();
        Console.WriteLine("****************************************" 
            + "****************\n");
        while (urlGen2.CreateUrl(urlIdPerm2, url2)) {
            if (urlIdPerm2 == null) {
                continue;
            }

            String firstPermission = (url1[0] == "" 
                || url1[0] == null) ? "null" : url1[0];
            String secondPermission = (url2[0] == "" 
                || url2[0] == null) ? "null" : url2[0];

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

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