MethodBase.IsSecuritySafeCritical Propriedade

Definição

Obtém um valor que indica se o método ou o construtor atual é crítico para segurança e disponível no código transparente no nível de confiança atual; ou seja, se ele pode realizar operações críticas e ser acessado pelo código transparente.

public:
 virtual property bool IsSecuritySafeCritical { bool get(); };
public virtual bool IsSecuritySafeCritical { get; }
member this.IsSecuritySafeCritical : bool
Public Overridable ReadOnly Property IsSecuritySafeCritical As Boolean

Valor da propriedade

Boolean

true Se o método ou o Construtor for de segurança crítica no nível de confiança atual; false se for de segurança crítica ou transparente.

Comentários

As IsSecurityCritical IsSecuritySafeCritical Propriedades, e IsSecurityTransparent relatam o nível de transparência do método ou Construtor em seu nível de confiança atual, conforme determinado pelo Common Language Runtime (CLR). As combinações destas propriedades são mostradas na seguinte tabela:

Nível de segurança IsSecurityCritical IsSecuritySafeCritical IsSecurityTransparent
Crítico true false false
Segurança crítica true true false
Transparente false false true

O uso dessas propriedades é muito mais simples do que examinar as anotações de segurança de um assembly e seus tipos e membros, verificar o nível de confiança atual e tentar duplicar as regras do tempo de execução.

Importante

Para assemblies de confiança parcial, o valor desta propriedade depende do nível de confiança atual do assembly. Se o assembly for carregado em um domínio de aplicativo parcialmente confiável (por exemplo, em um domínio de aplicativo em área restrita), o tempo de execução ignorará as anotações de segurança do assembly. O assembly e todos os tipos são tratados como transparentes. O runtime só presta atenção nas anotações de segurança de um assembly de confiança parcial quando o assembly é carregado em um domínio de aplicativo totalmente confiável (por exemplo, no domínio de aplicativo padrão de um aplicativo da área de trabalho). Por outro lado, um assembly confiável (ou seja, um assembly de nome forte que está instalado no cache de assembly global) é sempre carregado com confiança total, independentemente do nível de confiança do domínio do aplicativo, logo, o nível de confiança atual sempre é totalmente confiável. É possível determinar os níveis de confiança atuais de assemblies e de domínios de aplicativo usando-se as propriedades Assembly.IsFullyTrusted e AppDomain.IsFullyTrusted.

Para obter mais informações sobre reflexão e transparência, consulte considerações de segurança para reflexão. Para obter informações sobre transparência, consulte Security Changes.

Aplica-se a

Confira também