NetCodeGroup Classe

Definição

Concede permissão Web ao site de onde a assembleia foi descarregada. Esta classe não pode ser herdada.

public ref class NetCodeGroup sealed : 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
[<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
Herança
NetCodeGroup
Atributos

Exemplos

O exemplo de código seguinte demonstra a criação de um NetCodeGroup e a adição CodeConnectAccess de objetos para código descarregado usando o 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();
}

Observações

Os grupos de código são os blocos de construção da política de segurança de acesso ao código. Cada nível de política consiste num grupo de código raiz que pode ter um ou mais grupos de código filhos. Cada grupo de código filho pode ter os seus próprios grupos de códigos-filhos; Este comportamento estende-se a qualquer número de níveis, formando uma árvore. Cada grupo de código tem uma condição de pertença que determina se uma dada assembleia pertence ao grupo, com base na evidência dessa assembleia. Apenas grupos de código cujas condições de pertença correspondem a uma dada assembleia, juntamente com os seus grupos de código filhos, aplicam a política de segurança de acesso ao código.

NetCodeGroup tem a mesma semântica de fusão que a de UnionCodeGroup; forma a união dos PolicyStatement objetos de todos os grupos de códigos filhos correspondentes e gera PolicyStatement a partir da evidência de entrada Url . No entanto, NetCodeGroup devolve uma permissão contendo um cálculo WebPermission dinâmico que concede acesso de ligação ao site a partir do qual o código é executado; UnionCodeGroup simplesmente devolve um conjunto de permissões estático.

Quando um é criado NetCodeGroup , contém as regras de acesso à ligação padrão apresentadas na tabela seguinte.

Esquema de URI Rule
ficheiro Não é permitido acesso à ligação ao servidor de origem.
http O acesso HTTP e HTTPS é permitido usando a porta de origem.
https O acesso HTTPS é permitido usando a porta de origem.

Pode controlar o esquema e a porta que o código pode usar ao voltar a ligar ao local de origem, passando um CodeConnectAccess objeto com os valores e Port propriedades apropriados Scheme ao AddConnectAccess método. Pode criar uma regra de acesso à ligação que se aplique quando o esquema de origem não está presente na evidência ou não é reconhecido, especificando AbsentOriginScheme ("") como o esquema. Também pode criar uma regra de acesso à ligação que se aplique quando não existe uma regra de acesso à ligação com um esquema correspondente, especificando AnyOtherOriginScheme ("*") como o esquema.

Note

Se o código não submeter o esquema URI como prova, é permitido o acesso usando qualquer esquema de volta ao local de origem.

Construtores

Name Description
NetCodeGroup(IMembershipCondition)

Inicializa uma nova instância da NetCodeGroup classe.

Campos

Name Description
AbsentOriginScheme

Contém um valor usado para especificar o acesso à ligação para código com um esquema de origem desconhecido ou não reconhecido.

AnyOtherOriginScheme

Contém um valor usado para especificar qualquer outro esquema de origem não especificado.

Propriedades

Name Description
AttributeString

Obtém uma representação em cadeia dos atributos da instrução de política para o grupo de código.

Children

Obtém ou define uma lista ordenada dos grupos de códigos filhos de um grupo de código.

(Herdado de CodeGroup)
Description

Obtém ou define a descrição do grupo de código.

(Herdado de CodeGroup)
MembershipCondition

Obtém ou define a condição de pertença ao grupo de códigos.

(Herdado de CodeGroup)
MergeLogic

Obtém a lógica para fundir grupos.

Name

Obtém ou define o nome do grupo de códigos.

(Herdado de CodeGroup)
PermissionSetName

Recebe o nome NamedPermissionSet do grupo de códigos.

PolicyStatement

Obtém ou define a instrução de política associada ao grupo de código.

(Herdado de CodeGroup)

Métodos

Name Description
AddChild(CodeGroup)

Adiciona um grupo de código filho ao grupo de código atual.

(Herdado de CodeGroup)
AddConnectAccess(String, CodeConnectAccess)

Adiciona o acesso de ligação especificado ao grupo de código atual.

Copy()

Faz uma cópia profunda do grupo de código atual.

CreateXml(SecurityElement, PolicyLevel)

Quando sobrescrito numa classe derivada, serializa propriedades e estado interno específicos de um grupo de código derivado e adiciona a serialização ao especificado SecurityElement.

(Herdado de CodeGroup)
Equals(CodeGroup, Boolean)

Determina se o grupo de código especificado é equivalente ao grupo de código atual, verificando também os grupos de código filhos, se especificado.

(Herdado de CodeGroup)
Equals(Object)

Determina se o grupo de código especificado é equivalente ao grupo de código atual.

Equals(Object)

Determina se o grupo de código especificado é equivalente ao grupo de código atual.

(Herdado de CodeGroup)
FromXml(SecurityElement, PolicyLevel)

Reconstrói um objeto de segurança com um dado estado e nível de política a partir de uma codificação XML.

(Herdado de CodeGroup)
FromXml(SecurityElement)

Reconstrói um objeto de segurança com um estado dado a partir de uma codificação XML.

(Herdado de CodeGroup)
GetConnectAccessRules()

Obtém a informação de acesso à ligação para o grupo de código atual.

GetHashCode()

Obtém o código hash do grupo de código atual.

GetHashCode()

Obtém o código hash do grupo de código atual.

(Herdado de CodeGroup)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ParseXml(SecurityElement, PolicyLevel)

Quando sobrescrito numa classe derivada, reconstrói propriedades e estado interno específicos de um grupo de código derivado a partir do especificado SecurityElement.

(Herdado de CodeGroup)
RemoveChild(CodeGroup)

Remove o grupo de código filho especificado.

(Herdado de CodeGroup)
ResetConnectAccess()

Remove toda a informação de acesso à ligação do grupo de código atual.

Resolve(Evidence)

Resolve a política para o grupo de códigos e seus descendentes para um conjunto de evidências.

ResolveMatchingCodeGroups(Evidence)

Resolve grupos de código correspondentes.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
ToXml()

Cria uma codificação XML do objeto de segurança e do seu estado atual.

(Herdado de CodeGroup)
ToXml(PolicyLevel)

Cria uma codificação XML do objeto de segurança, do seu estado atual e do nível de política dentro do qual o código existe.

(Herdado de CodeGroup)

Aplica-se a