Leer en inglés

Compartir vía


GacMembershipCondition Clase

Definición

Determina si un ensamblado pertenece a un grupo de código mediante la comprobación de su pertenencia a la caché global de ensamblados. Esta clase no puede heredarse.

C#
public sealed class GacMembershipCondition : System.Security.ISecurityEncodable, System.Security.Policy.IMembershipCondition
C#
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class GacMembershipCondition
Herencia
GacMembershipCondition
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se muestra el uso de la GacMembershipCondition clase .

C#
using System;
using System.Security; 
using System.Security.Policy; 
using System.Collections;

public class GacMembershipConditionDemo
{
    // Demonstrate the Copy method, which creates an identical
    // copy of the current permission.
    private bool CopyDemo()
    {
        Console.WriteLine(
            "************************************************************");
        GacMembershipCondition Gac1 = new GacMembershipCondition();
        Console.WriteLine("Original membership condition = ");
        Console.WriteLine(Gac1.ToXml().ToString());
        try
        {
            IMembershipCondition membershipCondition = Gac1.Copy();
            Console.WriteLine("Result of Copy = ");
            Console.WriteLine(
                ((GacMembershipCondition)membershipCondition).ToXml().ToString()
                );
        }
        catch (Exception e)
        {
            Console.WriteLine("Copy failed : " + Gac1.ToString() + e);
            return false;
        }

        return true;
    }
    // Demonstrate the Check method, which determines whether the specified 
    // evidence satisfies the membership condition.
    private bool CheckDemo()
    {
        Console.WriteLine(
            "************************************************************");
        GacMembershipCondition Gac1 = new GacMembershipCondition();
        GacInstalled myGac = new GacInstalled();
        try
        {
            Object [] hostEvidence = {myGac};
            Object [] assemblyEvidence = {};

            Evidence myEvidence = new Evidence(hostEvidence,assemblyEvidence);
            bool retCode = Gac1.Check(myEvidence);
            Console.WriteLine("Result of Check = " + retCode.ToString() + "\n");
        }
        catch (Exception e)
        {
            Console.WriteLine("Check failed : " + Gac1.ToString() + e);
            return false;
        }

        return true;
    }

    // Demonstrate the GetHashCode method, which returns a hash code
    // for the specified membership condition.
    private bool GetHashCodeDemo()
    {
        Console.WriteLine(
            "************************************************************");
        GacMembershipCondition Gac1 = new GacMembershipCondition();
        try
        {
            Console.WriteLine(
                "Result of GetHashCode for a GacMembershipCondition = " + 
                Gac1.GetHashCode().ToString() + "\n");
        }
        catch (Exception e)
        {
            Console.WriteLine("GetHashCode failed : " + Gac1.ToString() + e);
            return false;
        }

        return true;
    }

    // Demonstrate the ToXml and FromXml methods, including the overloads.
    // ToXml creates an XML encoding of the membership condition and its 
    // current state; FromXml reconstructs a membership condition with the 
    // specified state from the XML encoding.
    private bool ToFromXmlDemo()
    {
        Console.WriteLine(
            "************************************************************");
        try
        {
            GacMembershipCondition Gac1 = new GacMembershipCondition();
            GacMembershipCondition Gac2 = new GacMembershipCondition();

            // Roundtrip a GacMembershipCondition to and from an XML encoding.
            Gac2.FromXml(Gac1.ToXml());
            bool result = Gac2.Equals(Gac1);
            if (result)
            {
                Console.WriteLine(
                    "Result of ToXml() = " + Gac2.ToXml().ToString());
                Console.WriteLine(
                    "Result of ToFromXml roundtrip = " + Gac2.ToString());
            }
            else
            {
                Console.WriteLine(Gac2.ToString());
                Console.WriteLine(Gac1.ToString());
                return false;
            }

            GacMembershipCondition Gac3 = new GacMembershipCondition();
            GacMembershipCondition Gac4 = new GacMembershipCondition();
            IEnumerator policyEnumerator = SecurityManager.PolicyHierarchy();
            while (policyEnumerator.MoveNext())
            {
                PolicyLevel currentLevel = 
                    (PolicyLevel)policyEnumerator.Current;
                if (currentLevel.Label == "Machine")
                {
                    Console.WriteLine("Result of ToXml(level) = " + 
                        Gac3.ToXml(currentLevel));
                    Gac4.FromXml(Gac3.ToXml(), currentLevel);
                    Console.WriteLine("Result of FromXml(element, level) = " + 
                        Gac4.ToString());
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("ToFromXml failed. " + e);
            return false;
        }

        return true;
    }

    // Invoke all demos.
    public bool RunDemo()
    {

        bool returnCode =true;
        bool tempReturnCode;

        // Call the Copy demo.
        if (tempReturnCode = CopyDemo())
            Console.Out.WriteLine("Copy demo completed successfully.");
        else 
            Console.Out.WriteLine("Copy demo failed.");

        returnCode = tempReturnCode && returnCode;

        // Call the Check demo.
        if (tempReturnCode = CheckDemo())
            Console.Out.WriteLine("Check demo completed successfully.");
        else 
            Console.Out.WriteLine("Check demo failed.");

        returnCode = tempReturnCode && returnCode;

        // Call the GetHashCode demo.
        if (tempReturnCode = GetHashCodeDemo())
            Console.Out.WriteLine("GetHashCode demo completed successfully.");
        else 
            Console.Out.WriteLine("GetHashCode demo failed.");

        returnCode = tempReturnCode && returnCode;

        // Call the ToFromXml demo.	
        if (tempReturnCode = ToFromXmlDemo())
            Console.Out.WriteLine("ToFromXml demo completed successfully.");
        else 
            Console.Out.WriteLine("ToFromXml demo failed.");

        returnCode = tempReturnCode && returnCode;
        return (returnCode);	
    }

    // Test harness.
    public static void Main(String[] args)
    {
        try
        {
            GacMembershipConditionDemo testcase = 
                new GacMembershipConditionDemo();
            bool returnCode = testcase.RunDemo();
            if (returnCode)
            {
                Console.Out.WriteLine(
                    "The GacMembershipCondition demo completed successfully.");
                Console.Out.WriteLine("Press the Enter key to exit.");
                string consoleInput = Console.ReadLine();
                System.Environment.ExitCode = 100;
            }
            else
            {
                Console.Out.WriteLine("The GacMembershipCondition 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("The GacIdentityPermission demo failed.");
            Console.WriteLine(e.ToString());
            Console.Out.WriteLine("Press the Enter key to exit.");
            string consoleInput = Console.ReadLine();
            System.Environment.ExitCode = 101;
        }
    }
}

Comentarios

A todos los ensamblados instalados en la caché global de ensamblados se les concede el FullTrust conjunto de permisos.

Constructores

GacMembershipCondition()

Inicializa una nueva instancia de la clase GacMembershipCondition.

Métodos

Check(Evidence)

Indica si la evidencia especificada satisface la condición de pertenencia.

Copy()

Crea una copia equivalente de la condición de pertenencia.

Equals(Object)

Indica si el objeto actual es equivalente al objeto especificado.

FromXml(SecurityElement)

Utiliza la codificación XML especificada para reconstruir un objeto de seguridad.

FromXml(SecurityElement, PolicyLevel)

Utiliza la codificación XML especificada para reconstruir un objeto de seguridad, utilizando el contexto de nivel de directiva especificado.

GetHashCode()

Obtiene un código hash de la condición de pertenencia actual.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una representación en forma de cadena de la condición de pertenencia.

ToXml()

Crea una codificación XML del objeto de seguridad y su estado actual.

ToXml(PolicyLevel)

Crea codificación XML del objeto de seguridad y de su estado actual, utilizando el contexto de nivel de directiva especificado.

Se aplica a

Producto Versiones
.NET 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9