Caspol.exe (Ferramenta de Política de Segurança de Acesso de Código)Caspol.exe (Code Access Security Policy Tool)

A ferramenta de política (Caspol.exe) CAS (Code Access Security) permite que usuários e administradores modifiquem a política de segurança para o nível de política do computador, o nível de política do usuário e o nível de política da empresa.The Code Access Security (CAS) Policy tool (Caspol.exe) enables users and administrators to modify security policy for the machine policy level, the user policy level, and the enterprise policy level.

Importante

Desde o .NET Framework 4, o Caspol.exe não afeta a política de CAS, a menos que o elemento <legacyCasPolicy> seja definido como true.Starting with the .NET Framework 4, Caspol.exe does not affect CAS policy unless the <legacyCasPolicy> element is set to true. Todas as configurações mostradas ou modificadas por CasPol.exe só afetarão aplicativos que optarem por usar a política de CAS.Any settings shown or modified by CasPol.exe will only affect applications that opt into using CAS policy. Para saber mais, confira Alterações de segurança.For more information, see Security Changes.

Observação

Os computadores 64 bits incluem versões 64 e 32 bits da política de segurança.64-bit computers include both 64-bit and 32-bit versions of security policy. Para verificar se as alterações na política se aplicam a aplicativos 32 e 64 bits, execute as versões 32 e 64 bits de Caspol.exe.To ensure that your policy changes apply to both 32-bit and 64-bit applications, run both the 32-bit and 64-bit versions of Caspol.exe.

A ferramenta Política de Segurança de Acesso a Códigos é instalada automaticamente com o .NET Framework e o Visual Studio.The Code Access Security Policy tool is automatically installed with the .NET Framework and with Visual Studio. É possível encontrar o Caspol.exe em %windir%\Microsoft.NET\Framework\version em sistemas 32 bits ou em %windir%\Microsoft.NET\Framework64\version em sistemas 64 bits.You can find Caspol.exe in %windir%\Microsoft.NET\Framework\version on 32-bit systems or %windir%\Microsoft.NET\Framework64\version on 64-bit systems. (Por exemplo, o local é%windir%\Microsoft.NET\Framework64\v4.030319\caspol.exe para o .NET Framework 4 em um sistema de 64 bits.) Várias versões da ferramenta poderão ser instaladas se o computador estiver executando várias versões do .NET Framework lado a lado.(For example, the location is %windir%\Microsoft.NET\Framework64\v4.030319\caspol.exe for the .NET Framework 4 on a 64-bit system.) Multiple versions of the tool might be installed if your computer is running multiple versions of the .NET Framework side by side. É possível executar a ferramenta no diretório de instalação.You can run the tool from the installation directory. Entretanto, recomendamos que você use os Prompts de comando, que não exigem que você navegue até a pasta de instalação.However, we recommend that you use the Command Prompts, which does not require you to navigate to the installation folder.

No prompt de comando, digite o seguinte:At the command prompt, type the following:

SintaxeSyntax

caspol [options]  

ParâmetrosParameters

OpçãoOption DescriçãoDescription
-addfulltrust assembly_file-addfulltrust assembly_file

ouor

-af assembly_file-af assembly_file
Adiciona um assembly que implementa um objeto de segurança personalizado (como uma permissão personalizada ou uma condição de associação personalizada) à lista de assemblies de confiança total para um nível de política específico.Adds an assembly that implements a custom security object (such as a custom permission or a custom membership condition) to the full trust assembly list for a specific policy level. O argumento assembly_file especifica o assembly a ser adicionado.The assembly_file argument specifies the assembly to add. Esse arquivo deve ser assinado com um nome forte.This file must be signed with a strong name. Você pode assinar um assembly com um nome forte usando a Ferramenta Nome Forte (Sn.exe).You can sign an assembly with a strong name using the Strong Name Tool (Sn.exe).

Sempre que um conjunto de permissões contendo uma permissão personalizada for adicionado à política, o assembly que implementa a permissão personalizada deverá ser adicionado à lista de confiança total desse nível de política.Whenever a permission set containing a custom permission is added to policy, the assembly implementing the custom permission must be added to the full trust list for that policy level. Assemblies que implementam objetos de segurança personalizados (como grupos de códigos ou condições de associação) usados em uma política de segurança (como a política do computador) devem ser adicionados à lista de assemblies de confiança total.Assemblies that implement custom security objects (such as custom code groups or membership conditions) used in a security policy (such as the machine policy) should always be added to the full trust assembly list. Cuidado: se o assembly que implementa o objeto de segurança personalizado fizer referência a outros assemblies, você deverá primeiro adicionar os assemblies referenciados à lista de assemblies de confiança total.Caution: If the assembly implementing the custom security object references other assemblies, you must first add the referenced assemblies to the full trust assembly list. Objetos de segurança personalizados criados usando-se Visual Basic, do C++ e JScript fazem referência a Microsoft.VisualBasic.dll, Microsoft.VisualC.dll ou Microsoft.JScript.dll, respectivamente.Custom security objects created using Visual Basic, C++, and JScript reference either Microsoft.VisualBasic.dll, Microsoft.VisualC.dll, or Microsoft.JScript.dll, respectively. Esses assemblies não estão na lista de assemblies de confiança total por padrão.These assemblies are not in the full trust assembly list by default. Você deverá adicionar a lista de assemblies apropriada à lista de confiança total antes de adicionar um objeto de segurança personalizado.You must add the appropriate assembly to the full trust list before you add a custom security object. Deixar de fazer isso interromperá o sistema de segurança, causando falha no carregamento dos assemblies.Failure to do so will break the security system, causing all assemblies to fail to load. Nessa situação, a opção -all -reset de Caspol.exe não reparará a segurança.In this situation, the Caspol.exe -all -reset option will not repair security. Para reparar segurança, você deve editar manualmente os arquivos de segurança a fim de remover o objeto de segurança personalizado.To repair security, you must manually edit the security files to remove the custom security object.
-addgroup {parent_label | parent_name} mship pset_name [flags]-addgroup {parent_label | parent_name} mship pset_name [flags]

ouor

-ag {parent_label | parent_name} mship pset_name [flags]-ag {parent_label | parent_name} mship pset_name [flags]
Adiciona um novo grupo de códigos à hierarquia do grupo de códigos.Adds a new code group to the code group hierarchy. É possível especificar o parent_label ou o parent_name.You can specify either the parent_label or parent_name. O argumento parent_label especifica o rótulo (como 1.The parent_label argument specifies the label (such as 1. ou 1.1) o nome do grupo de códigos que é o pai do grupo de códigos sendo adicionado.or 1.1.) of the code group that is the parent of the code group being added. O argumento parent_name especifica o nome do grupo de códigos que é o pai do grupo de códigos sendo adicionado.The parent_name argument specifies the name of the code group that is the parent of the code group being added. Como parent_label e parent_name podem ser usados alternadamente, o Caspol.exe deve ser capaz de diferenciá-los.Because parent_label and parent_name can be used interchangeably, Caspol.exe must be able to distinguish between them. Por isso, parent_name não pode começar com um número.Therefore, parent_name cannot begin with a number. Além disso, parent_name só pode conter A-Z, 0-9 e o caractere de sublinhado.Additionally, parent_name can only contain A-Z, 0-9 and the underscore character.

O argumento mship especifica a condição de associação para o novo grupo de códigos.The mship argument specifies the membership condition for the new code group. Para obter mais informações, consulte a tabela de argumentos mship posteriormente nesta seção.For more information, see the table of mship arguments later in this section.

O argumento pset_name é o nome do conjunto de permissões que será associado ao novo grupo de códigos.The pset_name argument is the name of the permission set that will be associated with the new code group. Também é possível definir um ou mais flags para o novo grupo.You can also set one or more flags for the new group. Para obter mais informações, consulte a tabela de argumentos flags posteriormente nesta seção.For more information, see the table of flags arguments later in this section.
-addpset {psfile | psfile pset_name}-addpset {psfile | psfile pset_name}

ouor

-ap {namedpsfile | psfile pset_name}-ap {namedpsfile | psfile pset_name}
Adicione um novo conjunto de permissões nomeadas à política.Adds a new named permission set to policy. O conjunto de permissões deve ser criado em XML e armazenado em um arquivo .xml.The permission set must be authored in XML and stored in an .xml file. Se o arquivo XML contiver o nome do conjunto de permissões, apenas esse arquivo (psfile) será especificado.If the XML file contains the name of the permission set, only that file (psfile) is specified. Se o arquivo XML não contiver o nome do conjunto de permissões, você deverá especificar o nome do arquivo XML (psfile) e o nome do conjunto de permissões (pset_name).If the XML file does not contain the permission set name, you must specify both the XML file name (psfile) and the permission set name (pset_name).

Observe que todas as permissões usadas em um conjunto de permissões devem ser definidas em assemblies contidos no cache de assembly global.Note that all permissions used in a permission set must be defined in assemblies contained in the global assembly cache.
-a[ll]-a[ll] Indica que todas as opções depois dessa se aplicam a esse computador, ao usuário e a políticas da empresa.Indicates that all options following this one apply to the machine, user, and enterprise policies. A opção -all sempre referencia a política do usuário conectado no momento.The -all option always refers to the policy of the currently logged-on user. Veja a opção -customall para consultar a política de um usuário diferente do usuário atual.See the -customall option to refer to the user policy of a user other than the current user.
-chggroup {label |name} {mship | pset_name |-chggroup {label |name} {mship | pset_name |

flags }flags }

ouor

-cg {label |name} {mship | pset_name |-cg {label |name} {mship | pset_name |

flags }flags }
Altera uma condição de associação do grupo de códigos, o conjunto de permissões ou as configurações dos sinalizadores exclusive, levelfinal, name ou description.Changes a code group's membership condition, permission set, or the settings of the exclusive, levelfinal, name, or description flags. É possível especificar o label ou o name.You can specify either the label or name. O argumento label especifica o rótulo (como 1.The label argument specifies the label (such as 1. ou 1.1.) do grupo de códigos.or 1.1.) of the code group. O argumento name especifica o nome do grupo de códigos a ser alterado.The name argument specifies the name of the code group to change. Como label e name podem ser usados alternadamente, o Caspol.exe deve ser capaz de diferenciá-los.Because label and name can be used interchangeably, Caspol.exe must be able to distinguish between them. Por isso, name não pode começar com um número.Therefore, name cannot begin with a number. Além disso, name só pode conter A-Z, 0-9 e o caractere de sublinhado.Additionally, name can only contain A-Z, 0-9 and the underscore character.

O argumento pset_name especifica o nome do conjunto de permissões a ser associado ao grupo de códigos.The pset_name argument specifies the name of the permission set to associate with the code group. Consulte as tabelas posteriormente nesta seção para obter informações sobre os argumentos mship e flags.See the tables later in this section for information on the mship and flags arguments.
-chgpset psfile pset_name-chgpset psfile pset_name

ouor

-cp psfile pset_name-cp psfile pset_name
Altera um conjunto de permissões nomeadas.Changes a named permission set. O argumento psfile fornece a nova definição do conjunto de permissões. Ele é um arquivo do conjunto de permissões serializado no formato XML.The psfile argument supplies the new definition for the permission set; it is a serialized permission set file in XML format. O argumento pset_name especifica o nome do conjunto de permissões que você deseja alterar.The pset_name argument specifies the name of the permission set you want to change.
-customall path-customall path

ouor

-ca path-ca path
Indica que todas as opções depois dessa se aplicam a esse computador, empresa e políticas de usuário personalizadas especificadas.Indicates that all options following this one apply to the machine, enterprise, and the specified custom user policies. Você deve especificar o local do arquivo de configuração de segurança do usuário personalizado com o argumento path.You must specify the location of the custom user's security configuration file with the path argument.
-cu[stomuser] path-cu[stomuser] path Permite a administração de uma política de usuário personalizada que não pertence ao usuário em nome do qual Caspol.exe está em execução no momento.Allows the administration of a custom user policy that does not belong to the user on whose behalf Caspol.exe is currently running. Você deve especificar o local do arquivo de configuração de segurança do usuário personalizado com o argumento path.You must specify the location of the custom user's security configuration file with the path argument.
-enterprise-enterprise

ouor

-en-en
Indica que todas as opções depois dessa se aplicam a essa política de nível empresarial.Indicates that all options following this one apply to the enterprise level policy. Usuários que não são administradores de empresa não têm direitos suficientes para modificar a política da empresa, embora possam exibi-la.Users who are not enterprise administrators do not have sufficient rights to modify the enterprise policy, although they can view it. Em cenários não empresariais, essa política, por padrão, não interfere na política de computador e usuário.In nonenterprise scenarios, this policy, by default, does not interfere with machine and user policy.
-e[xecution] {on | off}-e[xecution] {on | off} Ativa ou desativa o mecanismo que verifica a permissão para execução antes do código iniciar a execução.Turns on or off the mechanism that checks for the permission to run before code starts to execute. Observação: Essa opção é removida no .NET Framework 4 e em versões posteriores.Note: This switch is removed in the .NET Framework 4 and later versions. Para saber mais, confira Alterações de segurança.For more information, see Security Changes.
-f[orce]-f[orce] Suprime o teste de autodestruição da ferramenta e altera a política conforme especificado pelo usuário.Suppresses the tool's self-destruct test and changes the policy as specified by the user. Normalmente, Caspol.exe verifica se alguma alteração da política impediria que Caspol.exe fosse executado corretamente; assim, Caspol.exe não salva a alteração da política e imprime uma mensagem de erro.Normally, Caspol.exe checks whether any policy changes would prevent Caspol.exe itself from running properly; if so, Caspol.exe does not save the policy change and prints an error message. Para forçar Caspol.exe a alterar a política, mesmo que isso evite a execução de Caspol.exe, use a opção –force.To force Caspol.exe to change policy even if this prevents Caspol.exe itself from running, use the –force option.
-h[elp]-h[elp] Exibe sintaxe de comando e opções de Caspol.exe.Displays command syntax and options for Caspol.exe.
-l[ist]-l[ist] Lista a hierarquia do grupo de códigos e os conjuntos de permissões para o computador especificado, o usuário, a empresa ou todos os níveis de política.Lists the code group hierarchy and the permission sets for the specified machine, user, enterprise, or all policy levels. Caspol.exe exibe o rótulo do grupo de códigos primeiro, seguido do nome, se não for nulo.Caspol.exe displays the code group's label first, followed by the name, if it is not null.
-listdescription-listdescription

ouor

-ld-ld
Lista todas as descrições do grupo de códigos para o nível de política especificado.Lists all code group descriptions for the specified policy level.
-listfulltrust-listfulltrust

ouor

-lf-lf
Lista o conteúdo da lista de assemblies de confiança total para o nível de política especificado.Lists the contents of the full trust assembly list for the specified policy level.
-listgroups-listgroups

ouor

-lg-lg
Exibe os grupos de códigos do nível de política especificado ou todos os níveis de política.Displays the code groups of the specified policy level or all policy levels. Caspol.exe exibe o rótulo do grupo de códigos primeiro, seguido do nome, se não for nulo.Caspol.exe displays the code group's label first, followed by the name, if it is not null.
-listpset ou -lp-listpset or -lp Exibe os conjuntos de permissões para o nível de política especificado ou todos os níveis de política.Displays the permission sets for the specified policy level or all policy levels.
-m[achine]-m[achine] Indica que todas as opções depois dessa se aplicam a essa política de nível do computador.Indicates that all options following this one apply to the machine level policy. Usuários que não são administradores não têm direitos suficientes para modificar a política do computador, embora possam exibi-la.Users who are not administrators do not have sufficient rights to modify the machine policy, although they can view it. Para administradores, -machine é o padrão.For administrators, -machine is the default.
-polchgprompt {on | off}-polchgprompt {on | off}

ouor

-pp {on | off}-pp {on | off}
Habilita ou desabilita o prompt exibido sempre que Caspol.exe for executado usando-se uma opção que causaria alterações na política.Enables or disables the prompt that is displayed whenever Caspol.exe is run using an option that would cause policy changes.
-quiet-quiet

ouor

-q-q
Desabilita temporariamente o prompt exibido normalmente para uma opção que faz alterações na política.Temporarily disables the prompt that is normally displayed for an option that causes policy changes. A configuração do prompt de alteração global não muda.The global change prompt setting does not change. Só use a opção com base em um único comando para evitar desabilitar o prompt de todos os comandos de Caspol.exe.Use the option only on a single command basis to avoid disabling the prompt for all Caspol.exe commands.
-r[ecover]-r[ecover] Recupera a política de um arquivo de backup.Recovers policy from a backup file. Sempre que for feita uma alteração na política, Caspol.exe armazenará a política anterior em um arquivo de backup.Whenever a policy change is made, Caspol.exe stores the old policy in a backup file.
-remfulltrust assembly_file-remfulltrust assembly_file

ouor

-rf assembly_file-rf assembly_file
Remove um assembly da lista de confiança total de um nível de política.Removes an assembly from the full trust list of a policy level. Essa operação deverá ser realizada se um conjunto de permissões que contém uma permissão personalizada não for mais usado pela política.This operation should be performed if a permission set that contains a custom permission is no longer used by policy. Porém, você só deverá remover um assembly que implementa uma permissão personalizada da lista de confiança total se o assembly não implementar nenhuma outra permissão personalizada que ainda está sendo usada.However, you should remove an assembly that implements a custom permission from the full trust list only if the assembly does not implement any other custom permissions that are still being used. Ao remover um assembly da lista, você também deve remover todos os outros assemblies dependentes.When you remove an assembly from the list, you should also remove any other assemblies that it depends on.
-remgroup {label |name}-remgroup {label |name}

ouor

-rg {label | name}-rg {label | name}
Remove o grupo de códigos especificado por rótulo ou nome.Removes the code group specified by either its label or name. Se o grupo de códigos especificado tiver grupos de códigos filho, Caspol.exe também removerá todos os grupos de códigos filho.If the specified code group has child code groups, Caspol.exe also removes all the child code groups.
-rempset pset_name-rempset pset_name

ouor

-rp pset_name-rp pset_name
Remove o conjunto de permissões especificado da política.Removes the specified permission set from policy. O argumento pset_name indica o conjunto de permissões a ser removido.The pset_name argument indicates which permission set to remove. Caspol.exe só removerá o conjunto de permissões se não estiver associado a um grupo de códigos.Caspol.exe removes the permission set only if it is not associated with any code group. Os conjuntos de permissões (internos) padrão não podem ser removidos.The default (built-in) permission sets cannot be removed.
-reset-reset

ouor

-rs-rs
Restaura o estado padrão da política e o mantém no disco.Returns policy to its default state and persists it to disk. Isso será útil sempre que uma política alterada estiver aparentemente além do reparo e você quiser recomeçar usando os padrões da instalação.This is useful whenever a changed policy seems to be beyond repair and you want to start over with the installation defaults. A redefinição também pode ser prática quando você deseja usar a política padrão como ponto de partida para modificações feitas em arquivos de configuração de segurança específicos.Resetting can also be convenient when you want to use the default policy as a starting point for modifications to specific security configuration files. Para obter mais informações, consulte Editando manualmente os arquivos de configuração da segurança.For more information, see Manually Editing the Security Configuration Files.
-resetlockdown-resetlockdown

ouor

-rsld-rsld
Restaura uma versão mais restritiva do estado padrão e a mantém no disco; cria um backup da política do computador anterior e o mantém em um arquivo chamado security.config.bac.Returns policy to a more restrictive version of the default state and persists it to disk; creates a backup of the previous machine policy and persists it to a file called security.config.bac. A política bloqueada é semelhante à política padrão, exceto pela política não conceder permissões ao código nas zonas Local Intranet, Trusted Sites e Internet e os grupos de códigos correspondentes não terem grupos de códigos filho.The locked down policy is similar to the default policy, except that the policy grants no permission to code from the Local Intranet, Trusted Sites, and Internet zones and the corresponding code groups have no child code groups.
-resolvegroup assembly_file-resolvegroup assembly_file

ouor

-rsg assembly_file-rsg assembly_file
Mostra os grupos de códigos a que um assembly específico (assembly_file) pertence.Shows the code groups that a specific assembly (assembly_file) belongs to. Por padrão, essa opção exibe o computador, o usuário e os níveis de política empresarial a que o assembly pertence.By default, this option displays the machine, user, and enterprise policy levels to which the assembly belongs. Para exibir apenas um nível de política, use essa opção com a opção -machine, -user ou -enterprise.To view only one policy level, use this option with either the -machine, -user, or -enterprise option.
-resolveperm assembly_file-resolveperm assembly_file

ouor

-rsp assembly_file-rsp assembly_file
Exibe todas as permissões que o nível especificado (ou padrão) da política de segurança concederia ao assembly se o assembly tivesse permissão para executar.Displays all permissions that the specified (or default) level of security policy would grant the assembly if the assembly were allowed to run. O argumento assembly_file especifica o assembly.The assembly_file argument specifies the assembly. Se você especificar a opção -all, Caspol.exe calculará as permissões do assembly com base no usuário, no computador e na política corporativa, do contrário, as regras de comportamento padrão se aplicam.If you specify the -all option, Caspol.exe calculates the permissions for the assembly based on user, machine, and enterprise policy; otherwise, default behavior rules apply.
-s[ecurity] {on | off}-s[ecurity] {on | off} Ativa ou desativa a segurança de acesso ao código.Turns code access security on or off. A especificação da opção -s off não desabilita a segurança com base na função.Specifying the -s off option does not disable role-based security. Observação: Essa opção é removida no .NET Framework 4 e em versões posteriores.Note: This switch is removed in the .NET Framework 4 and later versions. Para saber mais, confira Alterações de segurança.For more information, see Security Changes. Cuidado: quando a segurança de acesso do código é desabilitada, todas as demandas de acesso ao código são bem-sucedidas.Caution: When code access security is disabled, all code access demands succeed. A desabilitação da segurança de acesso ao código deixa o sistema vulnerável a ataques pelo código mal-intencionado, como vírus e worms.Disabling code access security makes the system vulnerable to attacks by malicious code such as viruses and worms. A desativação da segurança oferece alguns ganhos de desempenho extra, mas só deve ser feita quando outras medidas de segurança foram tomadas para ajudar a garantir que não haja violação da segurança do sistema em geral.Turning off security gains some extra performance but should only be done when other security measures have been taken to help make sure overall system security is not breached. Entre os exemplos de outras precauções de segurança estão a desconexão de redes públicas, protegendo fisicamente computadores e assim por diante.Examples of other security precautions include disconnecting from public networks, physically securing computers, and so on.
-u[ser]-u[ser] Indica que todas as opções depois dessa se aplicam à política no nível do usuário em cujo nome Caspol.exe está em execução.Indicates that all options following this one apply to the user level policy for the user on whose behalf Caspol.exe is running. Para usuários não administrativos, o padrão é -user.For nonadministrative users, -user is the default.
-?-? Exibe sintaxe de comando e opções de Caspol.exe.Displays command syntax and options for Caspol.exe.

O argumento mship, que especifica a condição de associação para um grupo de códigos, pode ser usado com as opções -addgroup e -chggroup.The mship argument, which specifies the membership condition for a code group, can be used with the -addgroup and -chggroup options. Cada argumento mship é implementado como uma classe do .NET Framework.Each mship argument is implemented as a .NET Framework class. Para especificar mship, use uma das opções a seguir.To specify mship, use one of the following.

ArgumentoArgument DescriçãoDescription
-allcode-allcode Especifica qualquer código.Specifies all code. Para obter mais informações sobre essa condição de associação, consulte System.Security.Policy.AllMembershipCondition.For more information about this membership condition, see System.Security.Policy.AllMembershipCondition.
-appdir-appdir Especifica o diretório do aplicativo.Specifies the application directory. Se você especificar –appdir como a condição de associação, a evidência de URL do código será comparada com a evidência do diretório de aplicativo do código.If you specify –appdir as the membership condition, the URL evidence of code is compared with the application directory evidence of that code. Se ambos os valores de evidência forem iguais, essa condição de associação será atendida.If both evidence values are the same, this membership condition is satisfied. Para obter mais informações sobre essa condição de associação, consulte System.Security.Policy.ApplicationDirectoryMembershipCondition.For more information about this membership condition, see System.Security.Policy.ApplicationDirectoryMembershipCondition.
-custom xmlfile-custom xmlfile Adiciona uma condição de associação personalizada.Adds a custom membership condition. O argumento xmlfile obrigatório especifica o arquivo .xml que contém a serialização XML da condição de associação personalizada.The mandatory xmlfile argument specifies the .xml file that contains XML serialization of the custom membership condition.
-hash hashAlg { -hex hashValue | -file assembly_file }-hash hashAlg {-hex hashValue | -file assembly_file } Especifica o código que tem o hash de assembly indicado.Specifies code that has the given assembly hash. Para usar um hash como uma condição de associação do grupo de códigos, você deve especificar o valor de hash ou o arquivo de assembly.To use a hash as a code group membership condition, you must specify either the hash value or the assembly file. Para obter mais informações sobre essa condição de associação, consulte System.Security.Policy.HashMembershipCondition.For more information about this membership condition, see System.Security.Policy.HashMembershipCondition.
-pub { -cert cert_file_name |-pub { -cert cert_file_name |

-file signed_file_name | -hex hex_string }-file signed_file_name | -hex hex_string }
Especifica o código que tem o editor de software indicado, conforme mostrado por um arquivo de certificado, uma assinatura em um arquivo ou pela representação hexadecimal de um certificado X509.Specifies code that has the given software publisher, as denoted by a certificate file, a signature on a file, or the hexadecimal representation of an X509 certificate. Para obter mais informações sobre essa condição de associação, consulte System.Security.Policy.PublisherMembershipCondition.For more information about this membership condition, see System.Security.Policy.PublisherMembershipCondition.
-site website-site website Especifica o código que tem o site de origem indicado.Specifies code that has the given site of origin. Por exemplo:For example:

-site** www.proseware.com

Para obter mais informações sobre essa condição de associação, consulte System.Security.Policy.SiteMembershipCondition.For more information about this membership condition, see System.Security.Policy.SiteMembershipCondition.
-strong -file file_name {name | -noname} {version | -noversion}-strong -file file_name {name | -noname} {version | -noversion} Especifica o código que tem um nome forte específico, conforme designado pelo nome do arquivo, o nome do assembly como uma cadeia de caracteres e a versão do assembly no formato major.minor.build.revision.Specifies code that has a specific strong name, as designated by the file name, the assembly name as a string, and the assembly version in the format major.minor.build.revision. Por exemplo:For example:

-strong -file myAssembly.exe myAssembly 1.2.3.4-strong -file myAssembly.exe myAssembly 1.2.3.4

Para obter mais informações sobre essa condição de associação, consulte System.Security.Policy.StrongNameMembershipCondition.For more information about this membership condition, see System.Security.Policy.StrongNameMembershipCondition.
-url URL-url URL Especifica o código originado da URL indicada.Specifies code that originates from the given URL. A URL deve incluir um protocolo, como http:// ou ftp://.The URL must include a protocol, such as http:// or ftp://. Além disso, um caractere curinga (*) pode ser usado para especificar vários assemblies de uma URL específica.Additionally, a wildcard character (*) can be used to specify multiple assemblies from a particular URL. Observação: como uma URL pode ser identificada usando vários nomes, o uso de uma URL como uma condição de associação não é uma maneira segura de verificar a identidade do código.Note: Because a URL can be identified using multiple names, using a URL as a membership condition is not a safe way to ascertain the identity of code. Sempre que possível, use uma condição de associação de nome forte, uma condição de associação de publicador ou a condição de associação de hash.Where possible, use a strong name membership condition, a publisher membership condition, or the hash membership condition.

Para obter mais informações sobre essa condição de associação, consulte System.Security.Policy.UrlMembershipCondition.For more information about this membership condition, see System.Security.Policy.UrlMembershipCondition.
-zone zonename-zone zonename Especifica o código com a zona de origem indicada.Specifies code with the given zone of origin. O argumento zonename pode ter um dos seguintes valores: MyComputer, Intranet, Trusted, Internet ou Untrusted.The zonename argument can be one of the following values: MyComputer, Intranet, Trusted, Internet, or Untrusted. Para obter mais informações sobre essa condição de associação, consulte ZoneMembershipCondition Classe.For more information about this membership condition, see the ZoneMembershipCondition Class.

O argumento flags, que pode ser usado com as opções –addgroup e –chggroup, é especificado usando um dos valores a seguir.The flags argument, which can be used with the –addgroup and –chggroup options, is specified using one of the following.

ArgumentoArgument DescriçãoDescription
-description "descrição"-description "description" Se usado com a opção –addgroup, especifica a descrição de um grupo de códigos a ser adicionado.If used with the –addgroup option, specifies the description for a code group to add. Se usado com a opção –chggroup, especifica a descrição de um grupo de códigos a ser editado.If used with the –chggroup option, specifies the description for a code group to edit. O argumento description deve ser colocado entre aspas duplas.The description argument must be enclosed in double quotes.
-exclusive {on|off}-exclusive {on|off} Quando definido como on, indica que apenas o conjunto de permissões associado ao grupo de códigos que você está adicionando ou modificando é levado em consideração quando algum código se ajusta à condição de associação do grupo de códigos.When set to on, indicates that only the permission set associated with the code group you are adding or modifying is considered when some code fits the membership condition of the code group. Quando essa opção é definida como off, Caspol.exe leva em consideração os conjuntos de permissões de todos os grupos de códigos compatíveis no nível da política.When this option is set to off, Caspol.exe considers the permission sets of all matching code groups in the policy level.
-levelfinal {on|off}-levelfinal {on|off} Quando definido como on, indica que nenhum nível de política abaixo do nível no qual o ocorre grupo de códigos adicionado ou modificado é considerado.When set to on, indicates that no policy level below the level in which the added or modified code group occurs is considered. Essa opção costuma ser usada no nível de política do computador.This option is typically used at the machine policy level. Por exemplo, se você definir esse sinalizador para um grupo de códigos no nível do computador e algum código corresponder a essa condição de associação do grupo de códigos, Caspol.exe não calculará ou não aplicará a política de nível do usuário desse código.For example, if you set this flag for a code group at the machine level and some code matches this code group's membership condition, Caspol.exe does not calculate or apply the user level policy for this code.
-name "nome"-name "name" Se usado com a opção –addgroup, especifica o nome de script de um grupo de códigos a ser adicionado.If used with the –addgroup option, specifies the scripting name for a code group to add. Se usado com a opção -chggroup, especifica o nome de script de um grupo de códigos a ser editado.If used with the -chggroup option, specifies the scripting name for a code group to edit. O argumento name deve ser colocado entre aspas duplas.The name argument must be enclosed in double quotes. O argumento name não pode começar com um número e só pode conter A-Z, 0-9 e o caractere de sublinhado.The name argument cannot begin with a number, and can only contain A-Z, 0-9, and the underscore character. Os grupos de códigos podem ser referenciados por esse name em vez de seu rótulo numérico.Code groups can be referred to by this name instead of by their numeric label. O name também é muito útil para fins de script.The name is also highly useful for scripting purposes.

ComentáriosRemarks

A política de segurança é expressada usando-se três níveis de política: política de computador, política de usuário e política de empresa.Security policy is expressed using three policy levels: machine policy, user policy, and enterprise policy. O conjunto de permissões recebido por um assembly é determinado pela interseção dos conjuntos de permissões permitidos por esses três níveis de política.The set of permissions that an assembly receives is determined by the intersection of the permission sets allowed by these three policy levels. Cada nível de política é representado por uma estrutura hierárquica de grupos de códigos.Each policy level is represented by a hierarchical structure of code groups. Cada grupo de códigos tem uma condição de associação que determina qual código é um membro desse grupo.Every code group has a membership condition that determines which code is a member of that group. Um conjunto de permissões nomeado também está associado a cada grupo de códigos.A named permission set is also associated with each code group. Esse conjunto de permissões especifica as permissões permitidas pelo runtime que a condição de associação deve ter.This permission set specifies the permissions the runtime allows code that satisfies the membership condition to have. Uma hierarquia do grupo de códigos, além de seus conjuntos de permissões nomeados associados, define e mantém cada nível de política de segurança.A code group hierarchy, along with its associated named permission sets, defines and maintains each level of security policy. É possível usar as opções –user, -customuser, –machine e -enterprise para definir o nível de política de segurança.You can use the –user, -customuser, –machine and -enterprise options to set the level of security policy.

Para obter mais informações sobre a política de segurança e como o tempo de execução determina quais permissões devem ser concedidas ao código, consulte Gerenciamento de Políticas de Segurança.For more information about security policy and how the runtime determines which permissions to grant to code, see Security Policy Management.

Fazendo Referência a Grupos de Códigos e Conjuntos de PermissõesReferencing Code Groups and Permission Sets

Para facilitar referências a grupos de códigos em uma hierarquia, a opção -list exibe uma lista recuada de grupos de códigos com seus rótulos numéricos (1, 1.1, 1.1.1 e assim por diante).To facilitate references to code groups in a hierarchy, the -list option displays an indented list of code groups along with their numerical labels (1, 1.1, 1.1.1, and so on). As outras operações de linha de comando com grupos de códigos como destino também usam os rótulos numéricos para fazer referência a grupos de códigos específicos.The other command-line operations that target code groups also use the numerical labels to refer to specific code groups.

Os conjuntos de permissões nomeados são referenciados por seus nomes.Named permission sets are referenced by their names. A opção –list exibe a lista de grupos de códigos seguida de uma lista de conjuntos de permissões nomeados disponíveis nessa política.The –list option displays the list of code groups followed by a list of named permission sets available in that policy.

Comportamento de Caspol.exeCaspol.exe Behavior

Todas as opções exceto -s[ecurity] {on | off} usam a versão do .NET Framework com que Caspol.exe foi instalado.All options except -s[ecurity] {on | off} use the version of the .NET Framework that Caspol.exe was installed with. Se você executar o Caspol.exe instalado com a versão X do tempo de execução, as alterações só se aplicarão a essa versão.If you run the Caspol.exe that was installed with version X of the runtime, the changes apply only to that version. Outras instalações lado a lado do runtime, se houver, não serão afetadas.Other side-by-side installations of the runtime, if any, are not affected. Se você executar Caspol.exe na linha de comando sem estar em um diretório para uma versão específica do runtime, a ferramenta será executada no primeiro diretório da versão do runtime no caminho (normalmente, a versão mais recente do runtime instalada).If you run Caspol.exe from the command line without being in a directory for a specific runtime version, the tool is executed from the first runtime version directory in the path (usually the most recent runtime version installed).

A opção -s[ecurity] {on | off} é uma operação para todo o computador.The -s[ecurity] {on | off} option is a computer-wide operation. A desativação da segurança de acesso ao código encerra verificações de segurança para todo o código gerenciado e para todos os usuários no computador.Turning off code access security terminates security checks for all managed code and for all users on the computer. Se versões lado a lado do .NET Framework forem instaladas, esse comando desativará a segurança para toda versão instalada no computador.If side-by-side versions of the .NET Framework are installed, this command turns off security for every version installed on the computer. Embora a opção -list mostre que a segurança está desativada, nada mais indica claramente para outros usuários que a segurança foi desativada.Although the -list option shows that security is turned off, nothing else clearly indicates for other users that security has been turned off.

Quando um usuário sem direitos administrativos executa Caspol.exe, todas as opções referenciam a política de nível do usuário, a menos que a opção –machine esteja especificada.When a user without administrative rights runs Caspol.exe, all options refer to the user level policy unless the –machine option is specified. Quando um administrador executa Caspol.exe, todas as opções referenciam a política do computador, a menos que a opção –user esteja especificada.When an administrator runs Caspol.exe, all options refer to the machine policy unless the –user option is specified.

Caspol.exe deve receber o equivalente ao conjunto de permissões Everything para funcionar.Caspol.exe must be granted the equivalent of the Everything permission set to function. A ferramenta tem um mecanismo protetor que impede que a política seja modificada de maneira que impediria Caspol.exe de receber as permissões que precisa executar.The tool has a protective mechanism that prevents policy from being modified in ways that would prevent Caspol.exe from being granted the permissions it needs to run. Se você tentar fazer essas alterações, Caspol.exe notificará que a alteração da política solicitada interromperá a ferramenta, e a alteração da política será descartada.If you try to make such changes, Caspol.exe notifies you that the requested policy change will break the tool, and the policy change is rejected. É possível desativar esse mecanismo protetor para um determinado comando usando a opção –force.You can turn this protective mechanism off for a given command by using the –force option.

Editando Manualmente os Arquivos de Configuração da SegurançaManually Editing the Security Configuration Files

Três arquivos de configuração de segurança correspondem aos três níveis de política compatíveis com Caspol.exe: um para a política do computador, um para a política de um determinado usuário e um para a política da empresa.Three security configuration files correspond to the three policy levels supported by Caspol.exe: one for the machine policy, one for a given user's policy, and one for the enterprise policy. Esses arquivos só são criados em disco quando a política do computador, do usuário ou da empresa é alterada usando-se Caspol.exe.These files are created on disk only when machine, user, or enterprise policy is changed using Caspol.exe. É possível usar a opção –reset em Caspol.exe para salvar a política de segurança padrão em disco, se necessário.You can use the –reset option in Caspol.exe to save the default security policy to disk, if needed.

Na maioria dos casos, a edição manual dos arquivos de configuração de segurança não é recomendada.In most cases, manually editing the security configuration files is not recommended. Mas talvez haja cenários nos quais a modificação desses arquivos se torne necessária como quando um administrador deseja editar as configurações de segurança de um usuário específico.But there might be scenarios in which modifying these files becomes necessary, such as when an administrator wants to edit the security configuration for a particular user.

ExemplosExamples

-addfulltrust-addfulltrust

Suponhamos que um conjunto de permissões contendo uma permissão personalizada tenha sido adicionado à política do computador.Assume that a permission set containing a custom permission has been added to machine policy. Essa permissão personalizada é implementada em MyPerm.exe e faz referência a classes MyPerm.exe em MyOther.exe.This custom permission is implemented in MyPerm.exe, and MyPerm.exe references classes in MyOther.exe. Ambos os assemblies devem ser adicionados à lista de assemblies de confiança total.Both assemblies must be added to the full trust assembly list. O comando a seguir adiciona o assembly MyPerm.exe à lista de confiança total da política do computador.The following command adds the MyPerm.exe assembly to the full trust list for the machine policy.

caspol -machine -addfulltrust MyPerm.exe  

O comando a seguir adiciona o assembly MyOther.exe à lista de confiança total da política do computador.The following command adds the MyOther.exe assembly to the full trust list for the machine policy.

caspol -machine -addfulltrust MyOther.exe  

-addgroup-addgroup

O comando a seguir adiciona um grupo de códigos filho à raiz da hierarquia do grupo de códigos da política do computador.The following command adds a child code group to the root of the machine policy code group hierarchy. O novo grupo de códigos é um membro da zona Internet e é associado ao conjunto de permissões Execução.The new code group is a member of the Internet zone and is associated with the Execution permission set.

caspol -machine -addgroup 1.  -zone Internet Execution  

O comando a seguir adiciona um grupo de códigos filho que concede ao compartilhamento \\netserver\netshare permissões de intranet local.The following command adds a child code group that gives the share \\netserver\netshare local intranet permissions.

caspol -machine -addgroup 1. -url \\netserver\netshare\* LocalIntranet  

-addpset-addpset

O comando a seguir adiciona o conjunto de permissões Mypset à política do usuário.The following command adds the Mypset permission set to the user policy.

caspol -user -addpset Mypset.xml Mypset  

-chggroup-chggroup

O comando a seguir altera o conjunto de permissões definido na política do usuário do grupo de códigos identificado como 1.2.The following command changes the permission set in the user policy of the code group labeled 1.2. para o conjunto de permissões Execução.to the Execution permission set.

caspol -user -chggroup 1.2. Execution  

O comando a seguir altera a condição de associação na política padrão do grupo de códigos identificado como 1.2.1.The following command changes the membership condition in the default policy of the code group labeled 1.2.1. e altera a configuração do sinalizador exclusive.and changes the setting of the exclusive flag. A condição de associação é definida para ser o código originado na zona Internet e o sinalizador exclusive é ativado.The membership condition is defined to be code that originates from the Internet zone and the exclusive flag is switched on.

caspol -chggroup 1.2.1. -zone Internet -exclusive on  

-chgpset-chgpset

O comando a seguir altera o conjunto de permissões com o nome Mypset para o conjunto de permissões contido em newpset.xml.The following command changes the permission set with name Mypset to the permission set contained in newpset.xml. Observe que a versão atual não dá suporte à alteração dos conjuntos de permissões que estão sendo usados pela hierarquia do grupo de códigos.Note that the current release does not support changing permission sets that are being used by the code group hierarchy.

caspol -chgpset Mypset newpset.xml  

-force-force

O comando a seguir associa o grupo de códigos raiz da política do usuário (identificada como 1) ao conjunto de permissões nomeado como Nothing.The following command causes the user policy's root code group (labeled 1) to be associated with the Nothing named permission set. Isso impede a execução de Caspol.exe.This prevents Caspol.exe from running.

caspol -force -user -chggroup 1 Nothing  

-recover-recover

O comando a seguir recupera a política do computador salva mais recentemente.The following command recovers the most recently saved machine policy.

caspol -machine -recover  

-remgroup-remgroup

O comando a seguir remove o grupo de códigos identificado como 1.1.The following command removes the code group labeled 1.1. Se esse grupo de códigos tiver algum grupo de códigos filho, esses grupos também serão excluídos.If this code group has any child code groups, those groups are also deleted.

caspol -remgroup 1.1.  

-rempset-rempset

O comando a seguir remove o conjunto de permissões Execution da política do usuário.The following command removes the Execution permission set from the user policy.

caspol -user -rempset Execution  

O comando a seguir remove Mypset do nível de política do usuário.The following command removes Mypset from the user policy level.

caspol -rempset MyPset  

-resolvegroup-resolvegroup

O comando a seguir mostra todos os grupos de códigos da política do computador aos quais myassembly pertence.The following command shows all code groups of the machine policy that myassembly belongs to.

caspol -machine -resolvegroup myassembly  

O comando a seguir mostra todos os grupos de códigos das políticas do computador, da empresa e do usuário personalizado especificado a que myassembly pertence.The following command shows all code groups of the machine, enterprise, and specified custom user policy that myassembly belongs to.

caspol -customall "c:\config_test\security.config" -resolvegroup myassembly  

-resolveperm-resolveperm

O comando a seguir calcula as permissões de testassembly com base nos níveis de política do computador e do usuário.The following command calculates the permissions for testassembly based on the machine and user policy levels.

caspol -all -resolveperm testassembly  

Consulte tambémSee also