NetCodeGroup Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Concede permissão da Web para o site do qual o assembly foi baixado. Essa classe não pode ser herdada.
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
- Herança
- Atributos
Exemplos
O exemplo de código a seguir demonstra a criação de um NetCodeGroup e a adição CodeConnectAccess de objetos para código baixado 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();
}
Comentários
Os grupos de códigos 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 em um grupo de código raiz que pode ter um ou mais grupos de códigos filho. Cada grupo de códigos filho pode ter seus próprios grupos de códigos filho; esse comportamento se estende a qualquer número de níveis, formando uma árvore. Cada grupo de códigos tem uma condição de associação que determina se um determinado assembly pertence ao grupo, com base nas evidências desse assembly. Somente grupos de códigos cujas condições de associação correspondem a um determinado assembly, juntamente com seus grupos de código filho, aplicam a política de segurança de acesso ao código.
NetCodeGroup tem a mesma semântica de mesclagem que a de UnionCodeGroup; ela forma a união dos PolicyStatement objetos de todos os grupos de códigos filho correspondentes e o PolicyStatement que gera da evidência de entrada Url . No entanto, NetCodeGroup retorna uma permissão que contém um calculado WebPermission dinamicamente que concede acesso de conexão ao site do qual o código é executado; UnionCodeGroup simplesmente retorna um conjunto de permissões estáticas.
Quando um NetCodeGroup é criado, ele contém as regras de acesso de conexão padrão mostradas na tabela a seguir.
Esquema de URI | Regra |
---|---|
file | Nenhum acesso de conexão ao servidor de origem é permitido. |
http | O acesso HTTP e HTTPS é permitido usando a porta de origem. |
HTTPS | O acesso HTTPS é permitido usando a porta de origem. |
Você pode controlar o esquema e a porta que o código tem permissão para usar ao se conectar novamente ao seu site de origem passando um CodeConnectAccess objeto com os valores apropriados Scheme e Port de propriedade para o AddConnectAccess método . Você pode criar uma regra de acesso de conexão que se aplica quando o esquema de origem não está presente na evidência ou não é reconhecido especificando AbsentOriginScheme ("") como o esquema. Você também pode criar uma regra de acesso de conexão que se aplica quando não há nenhuma regra de acesso de conexão com um esquema de correspondência especificando AnyOtherOriginScheme ("*") como o esquema.
Observação
Se o código não enviar o esquema de URI como evidência, o acesso será permitido usando qualquer esquema de volta ao site de origem.
Construtores
NetCodeGroup(IMembershipCondition) |
Inicializa uma nova instância da classe NetCodeGroup. |
Campos
AbsentOriginScheme |
Contém um valor usado para especificar o acesso de conexão para o 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
AttributeString |
Obtém uma representação de cadeia de caracteres dos atributos da declaração de política para o grupo de códigos. |
Children |
Obtém ou define uma lista ordenada dos grupos de códigos filho de um grupo de códigos. (Herdado de CodeGroup) |
Description |
Obtém ou define a descrição do grupo de códigos. (Herdado de CodeGroup) |
MembershipCondition |
Obtém ou define a condição de associação do grupo de códigos. (Herdado de CodeGroup) |
MergeLogic |
Obtém a lógica a ser usada para mesclagem de grupos. |
Name |
Obtém ou define o nome do grupo de códigos. (Herdado de CodeGroup) |
PermissionSetName |
Obtém o nome do NamedPermissionSet para o grupo de códigos. |
PolicyStatement |
Obtém ou define a declaração de política associada ao grupo de códigos. (Herdado de CodeGroup) |
Métodos
AddChild(CodeGroup) |
Adiciona um grupo de códigos filho ao grupo de códigos adicional. (Herdado de CodeGroup) |
AddConnectAccess(String, CodeConnectAccess) |
Adiciona o acesso de conexão especificado ao grupo de códigos atual. |
Copy() |
Faz uma cópia em profundidade do grupo de códigos atual. |
CreateXml(SecurityElement, PolicyLevel) |
Quando substituído em uma classe derivada, serializa as propriedades e o estado interno específicos a um grupo de códigos derivado e adiciona a serialização ao SecurityElement especificado. (Herdado de CodeGroup) |
Equals(CodeGroup, Boolean) |
Determina se o grupo de códigos especificado é equivalente ao grupo de códigos atual, verificando os grupos de códigos filho também, se especificado. (Herdado de CodeGroup) |
Equals(Object) |
Determina se o grupo de códigos especificado é equivalente ao grupo de códigos atual. |
Equals(Object) |
Determina se o grupo de códigos especificado é equivalente ao grupo de códigos atual. (Herdado de CodeGroup) |
FromXml(SecurityElement) |
Recria um objeto de segurança com um estado determinado de uma codificação XML. (Herdado de CodeGroup) |
FromXml(SecurityElement, PolicyLevel) |
Recria um objeto de segurança com um estado e um nível de política determinados de uma codificação XML. (Herdado de CodeGroup) |
GetConnectAccessRules() |
Obtém as informações de acesso de conexão para o grupo de códigos atual. |
GetHashCode() |
Obtém o código hash do grupo de códigos atual. |
GetHashCode() |
Obtém o código hash do grupo de códigos atual. (Herdado de CodeGroup) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ParseXml(SecurityElement, PolicyLevel) |
Quando substituído em uma classe derivada, recria as propriedades e o estado interno específicos para um grupo de códigos derivado do SecurityElement especificado. (Herdado de CodeGroup) |
RemoveChild(CodeGroup) |
Remove o grupo de códigos filho especificado. (Herdado de CodeGroup) |
ResetConnectAccess() |
Remove todas as informações de acesso de conexão para o grupo de códigos 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 os grupos de códigos correspondentes. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
ToXml() |
Cria uma codificação XML do objeto de segurança e seu estado atual. (Herdado de CodeGroup) |
ToXml(PolicyLevel) |
Cria uma codificação de XML do objeto de segurança, seu estado atual e o nível de política no qual o código existe. (Herdado de CodeGroup) |