Compartilhar via


CodeAccessPermission.Assert Método

Definição

Declara que o código de chamada pode acessar o recurso protegido por uma demanda de permissão através do código que chama este método, mesmo que os chamadores na pilha não tenham recebido permissão para acessar o recurso. Usar Assert() pode criar problemas de segurança.

public:
 virtual void Assert();
public void Assert ();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
Public Sub Assert ()

Implementações

Exceções

O código de chamada não tem Assertion.

- ou -

Já existe um Assert() ativo para o quadro atual.

Comentários

Normalmente, a pilha de chamadas é representada como crescente, de modo que os métodos mais altos na pilha de chamadas chamem métodos mais baixos na pilha de chamadas. Chamar Assert impede que uma caminhada de pilha originária mais baixa na pilha de chamadas continue a pilha de chamadas além do código que chama esse método. Portanto, mesmo que os chamadores mais altos na pilha de chamadas não tenham as permissões necessárias para acessar um recurso, eles ainda poderão acessá-lo por meio do código que chama esse método na permissão necessária. Uma asserção só será efetiva se o código que chama Assert passar a marcar de segurança para a permissão que ele está afirmando.

A chamada para Assert é efetiva até que o código de chamada retorne ao chamador. Somente um Assert pode estar ativo em um quadro. Uma tentativa de chamar Assert quando um ativo Assert existe no quadro resulta em um SecurityException. Chame RevertAssert ou RevertAll para remover um ativo Assert.

Assert é ignorado para uma permissão não concedida porque uma demanda por essa permissão não terá êxito. No entanto, se o código inferior na pilha de chamadas chamar Demand essa permissão, um SecurityException será gerado quando o passo a passo da pilha atingir o código que tentou chamar Assert. Isso acontece porque o código que chamou Assert não recebeu a permissão, mesmo que tenha tentado.Assert

Cuidado

Como a chamada Assert remove o requisito de que todo o código na cadeia de chamadas deve receber permissão para acessar o recurso especificado, ele pode abrir problemas de segurança se usado incorretamente ou inadequadamente. Portanto, ele deve ser usado com muito cuidado.

Notas aos Herdeiros

Não é possível substituir esse método.

Aplica-se a

Confira também