Compartir a través de


NetCodeGroup Clase

Definición

Concede permiso Web al sitio del que se descargó el ensamblado. Esta clase no puede heredarse.

public ref class NetCodeGroup sealed : System::Security::Policy::CodeGroup
public sealed class NetCodeGroup : System.Security.Policy.CodeGroup
[System.Serializable]
public sealed class NetCodeGroup : System.Security.Policy.CodeGroup
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class NetCodeGroup : System.Security.Policy.CodeGroup
type NetCodeGroup = class
    inherit CodeGroup
[<System.Serializable>]
type NetCodeGroup = class
    inherit CodeGroup
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type NetCodeGroup = class
    inherit CodeGroup
Public NotInheritable Class NetCodeGroup
Inherits CodeGroup
Herencia
NetCodeGroup
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear y NetCodeGroup agregar CodeConnectAccess objetos para el código descargado mediante el esquema HTTP.


static void SetNetCodeGroupAccess()
{
    String^ userPolicyLevel = "User";
    // Locate the User policy level.
    PolicyLevel^ level = nullptr;
    System::Collections::IEnumerator^ ph = 
        System::Security::SecurityManager::PolicyHierarchy();
    while(ph->MoveNext())
    {
        level = (PolicyLevel^)ph->Current;
        if (level->Label == userPolicyLevel)
        {
            break;       
        }
    }
    if (level->Label != userPolicyLevel)
        throw gcnew ApplicationException("Could not find User policy level.");

    IMembershipCondition^ membership =
        gcnew UrlMembershipCondition("http://www.contoso.com/*");
    NetCodeGroup^ codeGroup = gcnew NetCodeGroup(membership);
    // Delete default settings.
    codeGroup->ResetConnectAccess();
    // Create an object that represents access to the FTP scheme and 
    // default port.
    CodeConnectAccess^ CodeAccessFtp = 
        gcnew CodeConnectAccess(Uri::UriSchemeFtp, 
        CodeConnectAccess::DefaultPort);
    // Create an object that represents access to the HTTPS scheme 
    // and default port.
    CodeConnectAccess^ CodeAccessHttps = 
        gcnew CodeConnectAccess(Uri::UriSchemeHttps, 
        CodeConnectAccess::DefaultPort);
    // Create an object that represents access to the origin 
    // scheme and port.
    CodeConnectAccess^ CodeAccessOrigin = 
        CodeConnectAccess::CreateOriginSchemeAccess
        (CodeConnectAccess::OriginPort);
    // Add connection access objects to the NetCodeGroup object.
    codeGroup->AddConnectAccess(Uri::UriSchemeHttp, CodeAccessFtp);
    codeGroup->AddConnectAccess(Uri::UriSchemeHttp, CodeAccessHttps);
    codeGroup->AddConnectAccess(Uri::UriSchemeHttp, CodeAccessOrigin);
    // Provide name and description information for caspol.exe tool.
    codeGroup->Name = "ContosoHttpCodeGroup";
    codeGroup->Description = "Code originating from contoso.com can" +
        " connect back using the FTP or HTTPS.";
    // Add the code group to the User policy's root node.
    level->RootCodeGroup->AddChild(codeGroup);
    // Save the changes to the policy level.
    System::Security::SecurityManager::SavePolicy();
}
public static void SetNetCodeGroupAccess()
{
    const string userPolicyLevel = "User";
    // Locate the User policy level.
    PolicyLevel level = null;
    System.Collections.IEnumerator ph =
        System.Security.SecurityManager.PolicyHierarchy();
    while(ph.MoveNext())
    {
        level = (PolicyLevel)ph.Current;
        if( level.Label == userPolicyLevel )
        {
            break;
        }
    }
    if (level.Label != userPolicyLevel)
        throw new ApplicationException("Could not find User policy level.");

    IMembershipCondition membership =
        new UrlMembershipCondition(@"http://www.contoso.com/*");
    NetCodeGroup codeGroup = new NetCodeGroup(membership);
    // Delete default settings.
    codeGroup.ResetConnectAccess();
    // Create an object that represents access to the FTP scheme and default port.
    CodeConnectAccess a1 = new CodeConnectAccess(Uri.UriSchemeFtp, CodeConnectAccess.DefaultPort);
    // Create an object that represents access to the HTTPS scheme and default port.
    CodeConnectAccess a2 = new CodeConnectAccess(Uri.UriSchemeHttps, CodeConnectAccess.DefaultPort);
    // Create an object that represents access to the origin scheme and port.
    CodeConnectAccess a3 = CodeConnectAccess.CreateOriginSchemeAccess(CodeConnectAccess.OriginPort);
    // Add connection access objects to the NetCodeGroup object.
    codeGroup.AddConnectAccess(Uri.UriSchemeHttp, a1);
    codeGroup.AddConnectAccess(Uri.UriSchemeHttp, a2);
    codeGroup.AddConnectAccess(Uri.UriSchemeHttp, a3);
    // Provide name and description information for caspol.exe tool.
    codeGroup.Name = "ContosoHttpCodeGroup";
    codeGroup.Description = "Code originating from contoso.com can connect back using the FTP or HTTPS.";
    // Add the code group to the User policy's root node.
    level.RootCodeGroup.AddChild(codeGroup);
    // Save the changes to the policy level.
    System.Security.SecurityManager.SavePolicy();
}

Comentarios

Los grupos de código son los bloques de creación de la directiva de seguridad de acceso de código. Cada nivel de directiva consta de un grupo de código raíz que puede tener uno o varios grupos de código secundarios. Cada grupo de código secundario puede tener sus propios grupos de código secundarios; este comportamiento se extiende a cualquier número de niveles, formando un árbol. Cada grupo de código tiene una condición de pertenencia que determina si un ensamblado determinado pertenece al grupo, en función de la evidencia de ese ensamblado. Solo los grupos de código cuyas condiciones de pertenencia coinciden con un ensamblado determinado, junto con sus grupos de código secundarios, aplican la directiva de seguridad de acceso al código.

NetCodeGroup tiene la misma semántica de combinación que la de UnionCodeGroup; forma la unión de los PolicyStatement objetos de todos los grupos de código secundarios coincidentes y el PolicyStatement que genera a partir de la evidencia de entrada Url . Sin embargo, NetCodeGroup devuelve un permiso que contiene un cálculo WebPermission dinámico que concede acceso de conexión al sitio desde el que se ejecuta el código; UnionCodeGroup simplemente devuelve un conjunto de permisos estático.

Cuando se crea un NetCodeGroup objeto , contiene las reglas de acceso de conexión predeterminadas que se muestran en la tabla siguiente.

Esquema de URI Regla
archivo No se permite ningún acceso de conexión al servidor de origen.
http Se permite el acceso HTTP y HTTPS mediante el puerto de origen.
https El acceso HTTPS se permite mediante el puerto de origen.

Puede controlar el esquema y el puerto que el código puede usar al conectarse de nuevo a su sitio de origen pasando un CodeConnectAccess objeto con los valores de propiedad y Port adecuados Scheme al AddConnectAccess método . Puede crear una regla de acceso de conexión que se aplique cuando el esquema de origen no esté presente en la evidencia o no se reconozca especificando AbsentOriginScheme ("") como esquema. También puede crear una regla de acceso de conexión que se aplique cuando no haya ninguna regla de acceso de conexión con un esquema coincidente especificando AnyOtherOriginScheme ("*") como esquema.

Nota:

Si el código no envía el esquema de URI como evidencia, se permite el acceso mediante cualquier esquema de vuelta al sitio de origen.

Constructores

NetCodeGroup(IMembershipCondition)

Inicializa una nueva instancia de la clase NetCodeGroup.

Campos

AbsentOriginScheme

Contiene un valor que se utiliza para especificar el acceso de conexión para el código con un esquema de origen desconocido o no reconocido.

AnyOtherOriginScheme

Contiene un valor utilizado para especificar cualquier otro esquema de origen no especificado.

Propiedades

AttributeString

Obtiene una representación en forma de cadena de los atributos de la instrucción de directiva del grupo de código.

Children

Obtiene o establece una lista ordenada de los grupos de código secundarios de un grupo de código.

(Heredado de CodeGroup)
Description

Obtiene o establece la descripción del grupo de código.

(Heredado de CodeGroup)
MembershipCondition

Obtiene o establece la condición de pertenencia del grupo de código.

(Heredado de CodeGroup)
MergeLogic

Obtiene la lógica que se utiliza para la combinación de grupos.

Name

Obtiene o establece el nombre del grupo de código.

(Heredado de CodeGroup)
PermissionSetName

Obtiene el nombre del objeto NamedPermissionSet del grupo de código.

PolicyStatement

Obtiene o establece la instrucción de directiva asociada al grupo de código.

(Heredado de CodeGroup)

Métodos

AddChild(CodeGroup)

Agrega un grupo de código secundario al grupo de código actual.

(Heredado de CodeGroup)
AddConnectAccess(String, CodeConnectAccess)

Agrega el acceso de conexión al grupo de código actual.

Copy()

Realiza una copia profunda del código de grupo actual.

CreateXml(SecurityElement, PolicyLevel)

Cuando se reemplaza en una clase derivada, serializa las propiedades y el estado interno específico de un grupo de código derivado y agrega la serialización al SecurityElement especificado.

(Heredado de CodeGroup)
Equals(CodeGroup, Boolean)

Determina si el grupo de código especificado es equivalente al grupo de código actual, comprobando también los grupos de código secundarios, si se especifican.

(Heredado de CodeGroup)
Equals(Object)

Determina si el grupo de código especificado es equivalente al grupo de código actual.

Equals(Object)

Determina si el grupo de código especificado es equivalente al grupo de código actual.

(Heredado de CodeGroup)
FromXml(SecurityElement)

Reconstruye un objeto de seguridad con un estado dado a partir de codificación XML.

(Heredado de CodeGroup)
FromXml(SecurityElement, PolicyLevel)

Reconstruye un objeto de seguridad con un estado y un nivel de directiva dados a partir de codificación XML.

(Heredado de CodeGroup)
GetConnectAccessRules()

Obtiene la información de acceso de conexión para el grupo de código actual.

GetHashCode()

Obtiene el código hash del grupo de código actual.

GetHashCode()

Obtiene el código hash del grupo de código actual.

(Heredado de CodeGroup)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ParseXml(SecurityElement, PolicyLevel)

Cuando se reemplaza en una clase derivada, reconstruye las propiedades y el estado interno específico de un grupo de código derivado del SecurityElement especificado.

(Heredado de CodeGroup)
RemoveChild(CodeGroup)

Quita el grupo de código secundario especificado.

(Heredado de CodeGroup)
ResetConnectAccess()

Quita toda la información de acceso de conexión para el grupo de código actual.

Resolve(Evidence)

Resuelve la directiva del grupo de código y sus descendientes para un conjunto de pruebas.

ResolveMatchingCodeGroups(Evidence)

Revuelve los grupos de código coincidentes.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
ToXml()

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

(Heredado de CodeGroup)
ToXml(PolicyLevel)

Crea una codificación XML del objeto de seguridad, de su estado actual y del nivel de directiva donde está incluido el código.

(Heredado de CodeGroup)

Se aplica a