Freigeben über


UrlIdentityPermission.IsSubsetOf-Methode

Bestimmt, ob die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist.

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

Syntax

'Declaration
Public Overrides Function IsSubsetOf ( _
    target As IPermission _
) As Boolean
'Usage
Dim instance As UrlIdentityPermission
Dim target As IPermission
Dim returnValue As Boolean

returnValue = instance.IsSubsetOf(target)
public override bool IsSubsetOf (
    IPermission target
)
public:
virtual bool IsSubsetOf (
    IPermission^ target
) override
public boolean IsSubsetOf (
    IPermission target
)
public override function IsSubsetOf (
    target : IPermission
) : boolean

Parameter

  • target
    Eine Berechtigung, für die geprüft werden soll, ob sie eine Teilmenge einer anderen Berechtigung ist. Diese Berechtigung muss von demselben Typ wie die aktuelle Berechtigung sein.

Rückgabewert

true, wenn die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung darstellt, andernfalls false.

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 aktuelle Berechtigung ist eine Teilmenge der angegebenen Berechtigung, wenn die aktuelle Berechtigung den Zugriff auf einen URL kennzeichnet, der vollständig in der angegebenen Berechtigung enthalten ist. Eine Berechtigung, die z. B. den Zugriff auf https://www.fourthcoffee.com/process/grind.htm darstellt, ist eine Teilmenge einer Berechtigung, die den Zugriff auf https://www.fourthcoffee.com/\* darstellt. Wenn diese Methode true zurückgibt, stellt die aktuelle Berechtigung keine weitergehenden Zugriffsrechte für die geschützte Ressource dar als die angegebene Berechtigung.

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

Beispiel

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

    Private Function IsSubsetOfDemo() As Boolean

        Dim returnValue As Boolean = True

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

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

        urlGen1.ResetIndex()
        While urlGen1.CreateUrl(url1)
            urlIdPerm1 = New UrlIdentityPermission(url1)
            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)
                If urlIdPerm2 Is Nothing Then
                    GoTo ContinueWhile2
                End If
                Try
                    If urlIdPerm1.IsSubsetOf(urlIdPerm2) Then

                        Console.WriteLine(firstPermission & ControlChars.Lf & " is a subset of " & secondPermission & ControlChars.Lf)
                    Else
                        Console.WriteLine(firstPermission & ControlChars.Lf & " is not a subset of " & secondPermission & ControlChars.Lf)
                    End If

                Catch e As Exception
                    Console.WriteLine(IIf("An exception was thrown for subset :" & url1 = "", "null.", IIf(url1 & ControlChars.Lf & url2 = "", "null.", url2 & ControlChars.Lf & e.ToString())))
                End Try
ContinueWhile2:
            End While
ContinueWhile1:
        End While
        Return returnValue
    End Function 'IsSubsetOfDemo
private bool IsSubsetOfDemo()
{

    bool returnValue = true;

    string url1, url2;
    UrlIdentityPermission urlIdPerm1, urlIdPerm2;

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

    urlGen1.ResetIndex();
    while (urlGen1.CreateUrl(out url1))
    {
        urlIdPerm1 = new UrlIdentityPermission(url1);
        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;
            if (urlIdPerm2 == null) continue;
            try
            {
                if (urlIdPerm1.IsSubsetOf(urlIdPerm2))
                {

                    Console.WriteLine(firstPermission + "\n is a subset of "
                        + secondPermission + "\n");
                }
                else
                {
                    Console.WriteLine(firstPermission + "\n is not a subset of "
                        + secondPermission + "\n");
                }

            }
            catch (Exception e)
            {
                Console.WriteLine("An exception was thrown for subset :"
                    + url1 == "" ? "null." : url1 + "\n" + url2 == "" ? "null." : url2 + "\n" + e);
            }
        }
    }
    return returnValue;
}
// IsSubsetOf determines whether the current permission is a 
// subset of the specified permission.
private boolean IsSubsetOfDemo()
{
    boolean returnValue = true;
    String url1[] = new String[1];
    String url2[] = new String[1];
    UrlIdentityPermission urlIdPerm1[] = new UrlIdentityPermission[1];
    UrlIdentityPermission urlIdPerm2[] = new UrlIdentityPermission[1];
    UrlGenerator urlGen1 = new UrlGenerator();
    UrlGenerator urlGen2 = new UrlGenerator();

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

            try {
                if (urlIdPerm1[0].IsSubsetOf(urlIdPerm2[0])) {
                    Console.WriteLine((firstPermission 
                        + "\n is a subset of " + secondPermission + "\n"));
                }
                else {
                    Console.WriteLine((firstPermission 
                        + "\n is not a subset of " + secondPermission 
                        + "\n"));
                }
            }
            catch (System.Exception e) {
                Console.WriteLine(("An exception was thrown for subset :"
                + url1 == "") ? "null." : (url1 + "\n" 
                    + url2 == "") ? "null." : url2 + "\n" + e);
            }
        }
    }
    return returnValue;
} //IsSubsetOfDemo

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