UrlIdentityPermission クラスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > UrlIdentityPermission クラスの意味・解説 

UrlIdentityPermission クラス

コードダウンロード元の URL に対して ID アクセス許可定義します。このクラス継承できません。

名前空間: System.Security.Permissions
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class
 UrlIdentityPermission
    Inherits CodeAccessPermission
Dim instance As UrlIdentityPermission
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public sealed class UrlIdentityPermission :
 CodeAccessPermission
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class UrlIdentityPermission sealed
 : public CodeAccessPermission
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class UrlIdentityPermission extends
 CodeAccessPermission
SerializableAttribute 
ComVisibleAttribute(true) 
public final class UrlIdentityPermission extends
 CodeAccessPermission
解説解説

プロトコル (HTTPHTTPSFTP) やファイル名を含む完全な URL想定されます。たとえば、http://www.fourthcoffee.com/process/grind.htm は完全な URL です。

URL には、完全に一致する文字列、または最終位置ワイルドカード使用した文字列 (http://www.fourthcoffee.com/process/* など) を使用できますドット区切り文字前にワイルドカード ("*") を付けた文字列含めることもできます。たとえば、URL 名の文字列 http://www.fourthcoffee.com/process/grind.htm/ は、http://*.fourthcoffee.com/process/grind.htm/ および http://*.com/process/grind.htm/ のサブセットなります

注意に関するメモメモ

.NET Framework Version 1.0 および 1.1 では、アクセス許可状態値 Unrestricted を ID アクセス許可割り当てることはできません。.NET Framework Version 2.0 では、任意のアクセス許可状態値を ID アクセス許可割り当てることができます。つまり、バージョン 2.0 では、ID アクセス許可動作が、IUnrestrictedPermission インターフェイス実装しているアクセス許可動作等しくなりますバージョン 2.0アプリケーションバージョン 1.1CAS ポリシー実行する方法については、「<legacyV1CASPolicy> 要素」を参照してください

使用例使用例

UrlIdentityPermission メソッド動作を示す例を次に示します。この例は、メソッド使用した場合結果を示すものであり、メソッド使用方法を示すためのものではありません。

Imports System
Imports System.Security
Imports System.Security.Permissions
Imports Microsoft.VisualBasic

<Assembly: CLSCompliant(True)> 

Public Class UrlIdentityPermissionDemo

    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

    ' 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

    ' 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

    'Copy creates and returns an identical copy of the current permission.
    Private Function CopyDemo() 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")
            Try
                urlIdPerm2 = CType(urlIdPerm1.Copy(), UrlIdentityPermission)
                If Not (urlIdPerm2 Is
 Nothing) Then
                    Console.WriteLine("Result of copy = "
 & urlIdPerm2.ToString() & ControlChars.Lf)
                Else
                    Console.WriteLine("Result of copy is null.
 " & ControlChars.Lf)
                End If
            Catch e As Exception
                If (True.ToString()) Then
                    If url1 = ""
 Then
                        Console.WriteLine("The target UrlIdentityPermission
 is empty; copy failed.")

                    Else
                        Console.WriteLine(e.ToString())
                    End If
                End If
                GoTo ContinueWhile1
            End Try
ContinueWhile1:
        End While
        Return returnValue
    End Function 'CopyDemo

    ' ToXml creates an XML encoding of the permission and its current
 state; FromXml 
    ' reconstructs a permission with the specified state from the XML
 encoding. 
    Private Function ToFromXmlDemo() As
 Boolean

        Dim returnValue As Boolean
 = True

        Dim url1 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)
            Console.WriteLine("********************************************************\n")
            urlGen2.ResetIndex()
            Try
                urlIdPerm2 = New UrlIdentityPermission(PermissionState.None)
                urlIdPerm2.FromXml(urlIdPerm1.ToXml())
                Console.WriteLine("Result of ToFromXml = "
 & urlIdPerm2.ToString())

            Catch e As Exception
                Console.WriteLine("ToFromXml failed :"
 & urlIdPerm1.ToString() & e.ToString())
                GoTo ContinueWhile1
            End Try
ContinueWhile1:
        End While

        Return returnValue
    End Function 'ToFromXmlDemo

    ' Invoke all demos.
    Public Function runDemo() As
 Boolean

        Dim ret As Boolean
 = True
        Dim retTmp As Boolean
        ' Call IsSubsetOf demo.
        retTmp = IsSubsetOfDemo()
        If retTmp Then
            Console.Out.WriteLine("IsSubset demo completed successfully.")
        Else
            Console.Out.WriteLine("IsSubset demo failed.")
        End If
        ret = retTmp AndAlso ret

        ' Call Union demo.
        retTmp = UnionDemo()
        If retTmp Then
            Console.Out.WriteLine("Union demo completed successfully.")
        Else
            Console.Out.WriteLine("Union demo failed.")
        End If
        ret = retTmp AndAlso ret

        ' Call Intersect demo.    
        retTmp = IntersectDemo()
        If retTmp Then
            Console.Out.WriteLine("Intersect demo completed successfully.")
        Else
            Console.Out.WriteLine("Intersect demo failed.")
        End If
        ret = retTmp AndAlso ret


        ' Call Copy demo.    
        retTmp = CopyDemo()
        If retTmp Then
            Console.Out.WriteLine("Copy demo completed successfully.")
        Else
            Console.Out.WriteLine("Copy demo failed.")
        End If
        ret = retTmp AndAlso ret

        ' Call ToFromXml demo.
        retTmp = ToFromXmlDemo()
        If retTmp Then
            Console.Out.WriteLine("ToFromXml demo completed successfully.")
        Else
            Console.Out.WriteLine("ToFromXml demo failed.")
        End If
        ret = retTmp AndAlso ret

        Return ret
    End Function 'runDemo

    ' Test harness.
    Public Overloads Shared
 Sub Main(ByVal args() As
 [String])
        Try
            Dim democase As New
 UrlIdentityPermissionDemo()
            Dim ret As Boolean
 = democase.runDemo()
            If ret Then
                Console.Out.WriteLine("UrlIdentity demo completed
 successfully.")
                Console.Out.WriteLine("Press the Enter key to
 exit.")
                Dim consoleInput As String
 = Console.ReadLine()
                System.Environment.ExitCode = 100
            Else
                Console.Out.WriteLine("UrlIdentity demo failed.")
                Console.Out.WriteLine("Press the Enter key to
 exit.")
                Dim consoleInput As String
 = Console.ReadLine()
                System.Environment.ExitCode = 101
            End If
        Catch e As Exception
            Console.Out.WriteLine("UrlIdentity demo failed.")
            Console.WriteLine(e.ToString())
            Console.Out.WriteLine("Press the Enter key to exit.")
            Dim consoleInput As String
 = Console.ReadLine()
            System.Environment.ExitCode = 101
        End Try
    End Sub 'Main
End Class 'UrlIdentityPermissionDemo


' This class generates UrlIdentityPermission objects.

Friend Class UrlGenerator


    Private myUrl As String()
 = {"http://www.fourthcoffee.com/process/grind.htm",
 "http://www.fourthcoffee.com/process/*", "http://www.fourthcoffee.com/*", "http://www.fourthcoffee.com/process/*",
 "http://www.contoso.com/math.asmx"}

    Private urlIndex As Integer
 = 0


    Public Sub New()
        ResetIndex()
    End Sub 'New


    Public Sub ResetIndex()
        urlIndex = 0
    End Sub 'ResetIndex

    ' CreateUrl creates a UrlIdentityPermission.
    Public Function CreateUrl(ByRef
 url As String) As Boolean


        If urlIndex = myUrl.Length Then

            url = ""
            urlIndex &= 1
            Return True
        End If
        If urlIndex > myUrl.Length Then
            url = ""
            Return False
        End If

        url = myUrl(urlIndex)
        urlIndex = urlIndex + 1
        Return True

    End Function 'CreateUrl
' End of UrlGenerator.
using System;
using System.Security;
using System.Security.Permissions;


public class UrlIdentityPermissionDemo
{
    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;
    }
    // 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;

    }
    // 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;

    }
    //Copy creates and returns an identical copy of the current permission.
    private bool CopyDemo()
    {

        bool returnValue = true;
        string url1;
        UrlIdentityPermission urlIdPerm1, urlIdPerm2;
        UrlGenerator urlGen1 = new UrlGenerator();
        UrlGenerator urlGen2 = new UrlGenerator();

        urlGen1.ResetIndex();
        while (urlGen1.CreateUrl(out url1))
        {
            urlIdPerm1 = new UrlIdentityPermission(url1);
            urlGen2.ResetIndex();
            Console.WriteLine("********************************************************\n");
            try
            {
                urlIdPerm2 = (UrlIdentityPermission)urlIdPerm1.Copy();
                if (urlIdPerm2 != null)
                {
                    Console.WriteLine("Result of copy = " + urlIdPerm2.ToString()
 + "\n");
                }
                else
                {
                    Console.WriteLine("Result of copy is null.
 \n");
                }
            }
            catch (Exception e)
            {
                {
                    if (url1 == "")
                    {
                        Console.WriteLine("The target UrlIdentityPermission
 is empty; copy failed.");

                    }
                    else
                        Console.WriteLine(e);
                }
                continue;
            }
        }
        return returnValue;
    }
    // ToXml creates an XML encoding of the permission and its current
 state; FromXml
    // reconstructs a permission with the specified state from the XML
 encoding.
    private bool ToFromXmlDemo()
    {

        bool returnValue = true;

        string url1;
        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");
            urlGen2.ResetIndex();
            try
            {
                urlIdPerm2 = new UrlIdentityPermission(PermissionState.None);
                urlIdPerm2.FromXml(urlIdPerm1.ToXml());
                Console.WriteLine("Result of ToFromXml = " + urlIdPerm2.ToString()
 + "\n");

            }
            catch (Exception e)
            {
                Console.WriteLine("ToFromXml failed :" + urlIdPerm1.ToString()
 + e);
                continue;
            }
        }

        return returnValue;

    }
    // Invoke all demos.
    public bool runDemo()
    {

        bool ret = true;
        bool retTmp;
        // Call IsSubsetOf demo.
        retTmp = IsSubsetOfDemo();
        if (retTmp) Console.Out.WriteLine("IsSubset demo
 completed successfully.");
        else Console.Out.WriteLine("IsSubset demo failed.");
        ret = retTmp && ret;

        // Call Union demo.
        retTmp = UnionDemo();
        if (retTmp) Console.Out.WriteLine("Union demo completed
 successfully.");
        else Console.Out.WriteLine("Union demo failed.");
        ret = retTmp && ret;

        // Call Intersect demo.
        retTmp = IntersectDemo();
        if (retTmp) Console.Out.WriteLine("Intersect demo
 completed successfully.");
        else Console.Out.WriteLine("Intersect demo failed.");
        ret = retTmp && ret;


        // Call Copy demo.
        retTmp = CopyDemo();
        if (retTmp) Console.Out.WriteLine("Copy demo completed
 successfully.");
        else Console.Out.WriteLine("Copy demo failed.");
        ret = retTmp && ret;

        // Call ToFromXml demo.
        retTmp = ToFromXmlDemo();
        if (retTmp) Console.Out.WriteLine("ToFromXml demo
 completed successfully.");
        else Console.Out.WriteLine("ToFromXml demo failed.");
        ret = retTmp && ret;

        return (ret);

    }
    // Test harness.
    public static void Main(String[]
 args)
    {
        try
        {
            UrlIdentityPermissionDemo democase = new UrlIdentityPermissionDemo();
            bool ret = democase.runDemo();
            if (ret)
            {
                Console.Out.WriteLine("UrlIdentity demo completed successfully.");
                Console.Out.WriteLine("Press the Enter key to exit.");
                string consoleInput = Console.ReadLine();
                System.Environment.ExitCode = 100;
            }
            else
            {
                Console.Out.WriteLine("UrlIdentity demo failed.");
                Console.Out.WriteLine("Press the Enter key to exit.");
                string consoleInput = Console.ReadLine();
                System.Environment.ExitCode = 101;
            }
        }
        catch (Exception e)
        {
            Console.Out.WriteLine("UrlIdentity demo failed.");
            Console.WriteLine(e.ToString());
            Console.Out.WriteLine("Press the Enter key to exit.");
            string consoleInput = Console.ReadLine();
            System.Environment.ExitCode = 101;
        }
    }
}


// This class generates UrlIdentityPermission objects.

internal class UrlGenerator
{


    private string[] myUrl =
{
        "http://www.fourthcoffee.com/process/grind.htm","http://www.fourthcoffee.com/process/*"
,
    "http://www.fourthcoffee.com/*","http://www.fourthcoffee.com/process/*"
,"http://www.contoso.com/math.asmx"};

    private int urlIndex = 0;

    public UrlGenerator()
    {
        ResetIndex();
    }

    public void ResetIndex()
    {
        urlIndex = 0;
    }
    // CreateUrl creates a UrlIdentityPermission.

    public bool CreateUrl(out string
 url)
    {


        if (urlIndex == myUrl.Length)
        {

            url = "";
            urlIndex++;
            return true;

        }
        if (urlIndex > myUrl.Length)
        {
            url = "";
            return false;
        }

        url = myUrl[urlIndex++];

        return true;
        
    }
} // End of UrlGenerator.

// This sample demonstrates the IsSubsetOf, Union, Intersect, 
// Copy, ToXml and FromXml methods
// of the UrlIdentityPermission class.

import System.*;
import System.Security.*;
import System.Security.Permissions.*;

/** @assembly CLSCompliant(true)
 */

public class UrlIdentityPermissionDemo
{
    // 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

    // 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

    // 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

    //Copy creates and returns an identical copy of the current permission.
    private boolean CopyDemo()
    {
        boolean returnValue = true;
        String url1[] = 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");
            try {
                urlIdPerm2[0] = ((UrlIdentityPermission)(urlIdPerm1[0].Copy()));
                if (urlIdPerm2 != null) {
                    Console.WriteLine(("Result of copy = " + urlIdPerm2[0].
                    ToString() + "\n"));
                }
                else {
                    Console.WriteLine("Result of copy is null.
 \n");
                }
            }
            catch (System.Exception e) {
                {
                    if (url1[0].Equals("")) {
                        Console.WriteLine("The target UrlIdentityPermission"
 
                            + " is empty; copy failed.");
                    }
                    else {
                        Console.WriteLine(e);
                    }
                }
                continue;
            }
        }
        return returnValue;
    } //CopyDemo

    // ToXml creates an XML encoding of the permission and 
    // its current state; FromXml
    // reconstructs a permission with the specified state from
    // the XML encoding.
    private boolean ToFromXmlDemo()
    {
        boolean returnValue = true;
        String url1[] = 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;
            }
            Console.WriteLine("********************************************"
 
                + "************\n");
            urlGen2.ResetIndex();
            try {
                urlIdPerm2[0] = new UrlIdentityPermission(PermissionState.None);
                urlIdPerm2[0].FromXml(urlIdPerm1[0].ToXml());
                Console.WriteLine(("Result of ToFromXml = " 
                    + urlIdPerm2[0].ToString() + "\n"));
            }
            catch (System.Exception e) {
                Console.WriteLine(("ToFromXml failed :" 
                    + urlIdPerm1.ToString() + e));
                continue;
            }
        }
        return returnValue;
    } //ToFromXmlDemo

    // Invoke all demos.
    public boolean runDemo()
    {
        boolean ret = true;
        boolean retTmp;

        // Call IsSubsetOf demo.
        retTmp = IsSubsetOfDemo();
        if (retTmp) {
            Console.get_Out().WriteLine("IsSubset demo completed " 
                + "successfully.");
        }
        else {
            Console.get_Out().WriteLine("IsSubset demo failed.");
        }
        ret = retTmp && ret;

        // Call Union demo.
        retTmp = UnionDemo();
        if (retTmp) {
            Console.get_Out().WriteLine("Union demo completed successfully.");
        }
        else {
            Console.get_Out().WriteLine("Union demo failed.");
        }
        ret = retTmp && ret;

        // Call Intersect demo.
        retTmp = IntersectDemo();
        if (retTmp) {
            Console.get_Out().WriteLine("Intersect demo completed " 
                + "successfully.");
        }
        else {
            Console.get_Out().WriteLine("Intersect demo failed.");
        }
        ret = retTmp && ret;

        // Call Copy demo.
        retTmp = CopyDemo();
        if (retTmp) {
            Console.get_Out().WriteLine("Copy demo completed successfully.");
        }
        else {
            Console.get_Out().WriteLine("Copy demo failed.");
        }
        ret = retTmp && ret;

        // Call ToFromXml demo.
        retTmp = ToFromXmlDemo();
        if (retTmp) {
            Console.get_Out().WriteLine("ToFromXml demo " 
                + "completed successfully.");
        }
        else {
            Console.get_Out().WriteLine("ToFromXml demo failed.");
        }

        ret = retTmp && ret;
        return ret;
    } //runDemo

    // Test harness.
    public static void main(String[]
 args)
    {
        try {
            UrlIdentityPermissionDemo democase = new 
            UrlIdentityPermissionDemo();
            boolean ret = democase.runDemo();

            if (ret) {
                Console.get_Out().WriteLine("UrlIdentity demo completed"
 
                    + " successfully.");
                Console.get_Out().WriteLine("Press the Enter key to exit.");
                String consoleInput = Console.ReadLine();
                Environment.set_ExitCode(100);
            }
            else {
                Console.get_Out().WriteLine("UrlIdentity demo failed.");
                Console.get_Out().WriteLine("Press the Enter key to exit.");
                String consoleInput = Console.ReadLine();
                Environment.set_ExitCode(101);
            }
        }
        catch (System.Exception e) {
            Console.get_Out().WriteLine("UrlIdentity demo failed.");
            Console.WriteLine(e.ToString());
            Console.get_Out().WriteLine("Press the Enter key to exit.");
            String consoleInput = Console.ReadLine();
            Environment.set_ExitCode(101);
        }
    } //main
} //UrlIdentityPermissionDemo

// This class generates UrlIdentityPermission objects.
class UrlGenerator
{
    private String myUrl[] = { 
        "http://www.fourthcoffee.com/process/grind.htm",
        "http://www.fourthcoffee.com/process/*", 
        "http://www.fourthcoffee.com/*", 
        "http://www.fourthcoffee.com/process/*",
        "http://www.contoso.com/math.asmx"};

    private int urlIndex = 0;

    public UrlGenerator() 
    {
        ResetIndex();
    } //UrlGenerator

    public void ResetIndex()
    {
        urlIndex = 0;
    } //ResetIndex


    // CreateUrl creates a UrlIdentityPermission.
    public boolean CreateUrl(UrlIdentityPermission urlPerm[],
 String url[])
    {
        UrlIdentityPermission urlP = null;
        if (urlIndex == myUrl.length) {
            urlPerm[0] = new UrlIdentityPermission(PermissionState.None);

            url[0] = "";
            urlIndex++;
            return true;
        }
        if (urlIndex > myUrl.length) {
            urlPerm = null;
            url[0] = "";
            return false;
        }
        url[0] = myUrl[urlIndex++];
        try {
            urlP = new UrlIdentityPermission(url[0]);
            urlPerm[0] = urlP;
            return true;
        }
        catch (System.Exception e) {
            Console.WriteLine(("Cannot create UrlIdentityPermission : "
 
                + url + " " + e));
            urlPerm[0] = new UrlIdentityPermission(PermissionState.None);
            url[0] = "";
            return true;
        }
    } //CreateUrl
} //UrlGenerator
継承階層継承階層
System.Object
   System.Security.CodeAccessPermission
    System.Security.Permissions.UrlIdentityPermission
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
UrlIdentityPermission メンバ
System.Security.Permissions 名前空間
UrlIdentityPermissionAttribute
Url
UrlMembershipCondition
その他の技術情報
アクセス許可
アクセス許可要求



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「UrlIdentityPermission クラス」の関連用語











UrlIdentityPermission クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



UrlIdentityPermission クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS