Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Método CodeAccessPermission.IsSubsetOf

Quando implementado por uma classe derivada, determina se a permissão atual é um subconjunto da permissão especificado.

Namespace:  System.Security
Assembly:  mscorlib (em mscorlib.dll)
public abstract bool IsSubsetOf(
	IPermission target
)

Parâmetros

target
Tipo: System.Security.IPermission
Uma permissão que é a serem testadas para a relação de subconjunto. Essa permissão deve ser do mesmo tipo como a permissão atual.

Valor de retorno

Tipo: System.Boolean
true Se a permissão atual é um subconjunto da permissão especificado; Caso contrário, false.

Implementações

IPermission.IsSubsetOf(IPermission)
ExceçãoCondição
ArgumentException

O target parâmetro não é null e não é do mesmo tipo como a permissão atual.

A permissão atual é um subconjunto da permissão especificada se a permissão atual Especifica um conjunto de operações que está contido totalmente a permissão especificada. Por exemplo, uma permissão que representa o acesso para C:\example.txt é um subconjunto de uma permissão que representa o acesso ao C:\. Se esse método retorna true, a permissão atual representa não mais acesso ao recurso protegido que a permissão especificada.

As instruções a seguir são necessárias para ser true para todas as substituições do IsSubsetOf método. X, y, e z representam objetos de permissão de acesso de código personalizado que são referências não nulas, u representa uma permissão de acesso irrestrito ao código, e n representa um vazio permissão com uma PermissionState de None.

  • X.IsSubsetOf (x) retorna true.

  • X.IsSubsetOf (y) retorna o mesmo valor de y.IsSubsetOf (x) se e somente se x e y representam o mesmo conjunto de permissões.

  • If X.IsSubsetOf (y) e y.IsSubsetOf(Z) both return true, X.IsSubsetOf (z) retorna true.

  • X.IsSubsetOf (u) retorna true.

  • X.IsSubsetOf (n) retorna false.

  • N.IsSubsetOf (x) retorna true.

Se x e y representam objetos de permissão de acesso a código personalizado são referências nulas, x.IsSubsetOf (y) retorna true. Se z também é nulo, o compostos definida operação x.Union(Y).IsSubsetOf (z) também retorna true porque a união de duas permissões nulas é uma permissão de nula.

Observações para herdeiros

Você deve substituir esse método em uma classe derivada.

O exemplo de código a seguir mostra uma substituição do IsSubsetOf método. Este exemplo de código é parte de um exemplo maior fornecido para a classe CodeAccessPermission.


        public override bool IsSubsetOf(IPermission target)
        {
#if(debug)
            Console.WriteLine ("************* Entering IsSubsetOf *********************");
#endif
            if (target == null)
            {
                Console.WriteLine ("IsSubsetOf: target == null");
                return false;
            }
#if(debug)

            Console.WriteLine ("This is = " + (( NameIdPermission)this).Name);
            Console.WriteLine ("Target is " + (( NameIdPermission)target).m_Name);
#endif
            try
            {
                 NameIdPermission operand = ( NameIdPermission)target;

                // The following check for unrestricted permission is only included as an example for
                // permissions that allow the unrestricted state. It is of no value for this permission.
                if (true == operand.m_Unrestricted)
                {
                    return true;
                }
                else if (true == this.m_Unrestricted)
                {
                    return false;
                }

                if (this.m_Name != null)
                {
                    if (operand.m_Name == null) return false;

                    if (this.m_Name == "") return true;
                }

                if (this.m_Name.Equals (operand.m_Name)) return true;
                else
                {
                    // Check for wild card character '*'.
                    int i = operand.m_Name.LastIndexOf ("*");

                    if (i > 0)
                    {
                        string prefix = operand.m_Name.Substring (0, i);

                        if (this.m_Name.StartsWith (prefix))
                        {
                            return true;
                        }
                    }
                }

                return false;
            }
            catch (InvalidCastException)
            {
                throw new ArgumentException (String.Format ("Argument_WrongType", this.GetType ().FullName));
            }
        }


.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte .Requisitos de sistema do NET Framework.
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
© 2013 Microsoft. Todos os direitos reservados.