Exporter (0) Imprimer
Développer tout

ZoneIdentityPermission, classe

Mise à jour : novembre 2007

Définit l'autorisation d'identité pour la zone d'où vient le code. Cette classe ne peut pas être héritée.

Espace de noms :  System.Security.Permissions
Assembly :  mscorlib (dans mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class ZoneIdentityPermission : CodeAccessPermission
/** @attribute SerializableAttribute */ 
/** @attribute ComVisibleAttribute(true) */
public final class ZoneIdentityPermission extends CodeAccessPermission
public final class ZoneIdentityPermission extends CodeAccessPermission

Cette autorisation peut déterminer si le code appelant est issu d'une certaine zone. Les zones sont configurées en fonction des options de Microsoft Internet Explorer et sont mappées à partir des URL par le composant IInternetSecurityManager d'Internet Explorer et les API associées. Seules des correspondances exactes de zones sont définies pour cette autorisation ; une URL ne peut appartenir qu'à une zone.

  • Zone intranet : la zone intranet est utilisée pour le contenu situé sur l'intranet d'une société. Comme les serveurs sont protégés par le pare-feu de la société, un niveau de confiance supérieur est assigné au contenu figurant sur l'intranet.

  • Zone Sites de confiance : la zone Sites de confiance est utilisée pour le contenu de sites Web considérés comme étant plus fiables que d'autres sites Internet. Les utilisateurs peuvent se servir de cette zone pour assigner un plus haut niveau de confiance à des sites Internet spécifiques. Les URL de ces sites Web de confiance doivent être mappées dans cette zone par l'utilisateur. Par défaut, les sites de la zone Sites de confiance ne reçoivent pas un niveau de confiance plus élevé que les sites de la zone Internet. Pour que les sites de cette zone bénéficient d'un niveau de confiance supérieur, un utilisateur (ou une société) doit modifier le niveau de confiance accordé à la zone.

  • Zone Internet : la zone Internet est utilisée pour les sites Web de l'Internet qui n'appartiennent pas à une autre zone. Les valeurs par défaut autorisent au code téléchargé à partir de ces sites un accès minimal aux ressources résidant sur l'ordinateur de l'utilisateur. Les sites Web qui ne sont pas mappés dans d'autres zones reviennent automatiquement à cette zone.

  • Zone Sites sensibles : la zone Sites sensibles est utilisée pour les sites Web dont le contenu risque de causer ou a pu causer des problèmes lors de son téléchargement. Elle peut servir à empêcher le code téléchargé à partir de ces sites de s'exécuter sur l'ordinateur de l'utilisateur. Les URL de ces sites Web qui ne sont pas dignes de confiance doivent être mappées dans cette zone par l'utilisateur.

  • Zone Ordinateur local : la zone Ordinateur local est une zone implicite utilisée pour le contenu résidant sur l'ordinateur de l'utilisateur. Le contenu qui se trouve sur l'ordinateur de l'utilisateur, sauf s'il a été mis en cache par Internet Explorer sur le système local, est traité avec un niveau de confiance très élevé.

Remarque importante :

Dans le .NET Framework versions 1.0 et 1.1, les demandes d'autorisations d'identité sont efficaces même si l'assembly appelant bénéficie d'un niveau de confiance suffisant. Autrement dit, bien que l'assembly appelant bénéficie d'une confiance totale, une demande pour une autorisation d'identité échoue si l'assembly ne répond pas aux critères demandés. Dans le .NET Framework version 2.0, les demandes d'autorisations d'identité sont inefficaces si l'assembly appelant bénéficie d'une confiance totale. Cela garantit la cohérence entre toutes les autorisations, ce qui évite le traitement des autorisations d'identité comme un cas particulier.

L'exemple de code suivant illustre le comportement des méthodes de la classe ZoneIdentityPermission.

Remarque :

L'exemple de code vise à montrer le comportement des méthodes, et non leur utilisation. En général, les méthodes des classes d'autorisation sont utilisées par l'infrastructure de sécurité ; elles ne sont généralement pas utilisées dans les applications. En général, seuls les constructeurs sont utilisés dans le code d'application. L'instance créée valide ou contrôle l'accès aux ressources à l'aide de méthodes CodeAccessPermission héritées telles que Demand.

using System;
using System.Security;
using System.Security.Permissions;

public class ZoneIdentityPermissionDemo
{
    public static void Main(String[] args)
    {
        IsSubsetOfDemo();
        CopyDemo();
        UnionDemo();
        IntersectDemo();
        ToFromXmlDemo();
    }

    // IsSubsetOf determines whether the current permission is a subset of the specified permission.
    private static void IsSubsetOfDemo()
    {
        ZoneIdentityPermission zoneIdPerm1 = new ZoneIdentityPermission(SecurityZone.Intranet);
        ZoneIdentityPermission zoneIdPerm2 = new ZoneIdentityPermission(SecurityZone.MyComputer);

        if (zoneIdPerm1.IsSubsetOf(zoneIdPerm2))
        {
            Console.WriteLine(zoneIdPerm1.SecurityZone.ToString() + " is a subset of " +
                zoneIdPerm2.SecurityZone.ToString());
        }
        else
        {
            Console.WriteLine(zoneIdPerm1.SecurityZone.ToString() + " is not a subset of " +
                zoneIdPerm2.SecurityZone.ToString());

        }
        if (zoneIdPerm2.IsSubsetOf(zoneIdPerm1))
        {
            Console.WriteLine(zoneIdPerm2.SecurityZone.ToString() + " is a subset of " +
                zoneIdPerm1.SecurityZone.ToString());
        }
        else
        {
            Console.WriteLine(zoneIdPerm2.SecurityZone.ToString() + " is not a subset of " +
                zoneIdPerm1.SecurityZone.ToString());

        }
    }
    // Union creates a new permission that is the union of the current permission
    // and the specified permission.
    private static void UnionDemo()
    {
        ZoneIdentityPermission zoneIdPerm1 = new ZoneIdentityPermission(SecurityZone.Intranet);
        ZoneIdentityPermission zoneIdPerm2 = new ZoneIdentityPermission(SecurityZone.MyComputer);
        ZoneIdentityPermission p3 = (ZoneIdentityPermission)zoneIdPerm1.Union(zoneIdPerm2);
        try
        {
            if (p3 != null)
            {
                Console.WriteLine("The union of " + zoneIdPerm1.SecurityZone.ToString() +
                    " and \n\t" + zoneIdPerm2.SecurityZone.ToString() + " is \n\t"
                    + p3.SecurityZone.ToString() + "\n");

            }
            else
            {
                Console.WriteLine("The union of " + zoneIdPerm1.SecurityZone.ToString() +
                    " and \n\t" + zoneIdPerm2.SecurityZone.ToString() + " is null.\n");
            }
        }
        catch (SystemException e)
        {
            Console.WriteLine("The union of " + zoneIdPerm1.SecurityZone.ToString() +
                    " and \n\t" + zoneIdPerm2.SecurityZone.ToString() + " failed.");

            Console.WriteLine(e.Message);
        }

    }
    // Intersect creates and returns a new permission that is the intersection of the
    // current permission and the permission specified.
    private static void IntersectDemo()
    {

        ZoneIdentityPermission zoneIdPerm1 = new ZoneIdentityPermission(SecurityZone.Intranet);
        ZoneIdentityPermission zoneIdPerm2 = new ZoneIdentityPermission(SecurityZone.MyComputer);
        ZoneIdentityPermission p3 = (ZoneIdentityPermission)zoneIdPerm1.Intersect(zoneIdPerm2);

        if (p3 != null)
        {
            Console.WriteLine("The intersection of " + zoneIdPerm1.SecurityZone.ToString() + " and \n\t" +
                zoneIdPerm2.SecurityZone.ToString() + " is " + p3.SecurityZone.ToString() + "\n");

        }
        else
        {
            Console.WriteLine("The intersection of " + zoneIdPerm1.SecurityZone.ToString() +
                " and \n\t" + zoneIdPerm2.SecurityZone.ToString() + " is null.\n");
        }


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

        ZoneIdentityPermission zoneIdPerm1 = new ZoneIdentityPermission(SecurityZone.Intranet);
        ZoneIdentityPermission zoneIdPerm2 = new ZoneIdentityPermission(PermissionState.None);
        zoneIdPerm2 = (ZoneIdentityPermission)zoneIdPerm1.Copy();
        if (zoneIdPerm2 != null)
        {
            Console.WriteLine("The copy succeeded:  " + zoneIdPerm2.ToString() + " \n");
        }

    }
    // 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 static void ToFromXmlDemo()
    {


        ZoneIdentityPermission zoneIdPerm1 = new ZoneIdentityPermission(SecurityZone.Intranet);
        ZoneIdentityPermission zoneIdPerm2 = new ZoneIdentityPermission(PermissionState.None);
        zoneIdPerm2.FromXml(zoneIdPerm1.ToXml());
        bool result = zoneIdPerm2.Equals(zoneIdPerm1);
        if (result)
        {
            Console.WriteLine("Result of ToFromXml = " + zoneIdPerm2.ToString());
        }
        else
        {
            Console.WriteLine(zoneIdPerm2.ToString());
            Console.WriteLine(zoneIdPerm1.ToString());
        }

    }
}



System.Object
  System.Security.CodeAccessPermission
    System.Security.Permissions.ZoneIdentityPermission

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft