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

Classe UIPermission

Controla as permissões relacionadas a interfaces de usuário e a área de transferência. Esta classe não pode ser herdada.

System.Object
  System.Security.CodeAccessPermission
    System.Security.Permissions.UIPermission

Namespace:  System.Security.Permissions
Assembly:  mscorlib (em mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class UIPermission : CodeAccessPermission, 
	IUnrestrictedPermission

O tipo UIPermission expõe os membros a seguir.

  NomeDescrição
Método públicoUIPermission(PermissionState)Inicializa uma nova instância de UIPermission classe com acesso totalmente restrito ou Irrestrito, conforme especificado.
Método públicoUIPermission(UIPermissionClipboard)Inicializa uma nova instância de UIPermission classe com as permissões para a área de transferência e nenhum acesso ao windows.
Método públicoUIPermission(UIPermissionWindow)Inicializa uma nova instância de UIPermission classe com as permissões para o windows e nenhum acesso à área de transferência.
Método públicoUIPermission(UIPermissionWindow, UIPermissionClipboard)Inicializa uma nova instância de UIPermission classe com as permissões especificadas para o windows e a área de transferência.
Início
  NomeDescrição
Propriedade públicaClipboardObtém ou define o acesso de área de transferência, representado pela permissão.
Propriedade públicaWindowObtém ou define o acesso de janela representado pela permissão.
Início
  NomeDescrição
Método públicoAssertDeclara que o código chamador pode acessar o recurso protegido por uma demanda de permissão através do código que chama esse método, mesmo se os chamadores superiores na pilha não receberam permissão para acessar o recurso. Usando Assert pode criar problemas de segurança. (Herdado de CodeAccessPermission.)
Método públicoCopyCria e retorna uma cópia idêntica da permissão atual. (Substitui CodeAccessPermission.Copy().)
Método públicoDemandForça uma SecurityException em tempo de execução se todos os chamadores superiores na pilha de chamadas não tem sido concedida a permissão especificada pela instância atual. (Herdado de CodeAccessPermission.)
Método públicoDeny Obsoleta. Impede que os chamadores superiores na pilha de chamadas usando o código que chama esse método para acessar o recurso especificado pela instância atual. (Herdado de CodeAccessPermission.)
Método públicoEqualsDetermina se o especificado CodeAccessPermission objeto é igual a atual CodeAccessPermission. (Herdado de CodeAccessPermission.)
Método protegidoFinalize Permite que um objeto tente liberar recursos e executar outras operações de limpeza antes que ele seja recuperado pela coleta de lixo. (Herdado de Object.)
Método públicoFromXmlReconstrói uma permissão de um estado especificado de uma codificação de XML. (Substitui CodeAccessPermission.FromXml(SecurityElement).)
Método públicoGetHashCodeObtém um código hash para o CodeAccessPermission objeto que é adequado para uso em hash, algoritmos e estruturas de dados como uma tabela de hash. (Herdado de CodeAccessPermission.)
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método públicoIntersectCria e retorna uma permissão que é a interseção da permissão atual e a permissão especificada. (Substitui CodeAccessPermission.Intersect(IPermission).)
Método públicoIsSubsetOfDetermina se a permissão atual é um subconjunto da permissão especificado. (Substitui CodeAccessPermission.IsSubsetOf(IPermission).)
Método públicoIsUnrestrictedRetorna um valor indicando se a permissão atual é irrestrita.
Método protegidoMemberwiseCloneCria uma cópia superficial do Object atual. (Herdado de Object.)
Método públicoPermitOnlyImpede que os chamadores superiores na pilha de chamadas usando o código que chama esse método para acessar todos os recursos, exceto para o recurso especificado pela instância atual. (Herdado de CodeAccessPermission.)
Método públicoToStringCria e retorna uma representação de seqüência de caracteres do objeto de permissão atual. (Herdado de CodeAccessPermission.)
Método públicoToXmlCria uma codificação XML da permissão e seu estado atual. (Substitui CodeAccessPermission.ToXml().)
Método públicoUnionCria uma permissão que é a união entre a permissão e a permissão especificada. (Substitui CodeAccessPermission.Union(IPermission).)
Início

Eventos de entrada do usuário e de desenho no windows são interfaces de usuário.

A permissão para usar o windows pode ser um destes procedimentos: Irrestrito, limitado a SafeTopLevelWindows, apenas SafeSubWindows, ou nenhuma janela de desenho ou o usuário tem permitido de acesso de eventos de entrada. SafeTopLevelWindows e SafeSubWindows são restritos no título e o tamanho para impedir possíveis falsificação pelo código potencialmente prejudicial.

A permissão para usar a área de transferência pode ser um destes procedimentos: Irrestrito, somente para gravação ou a permissão sem acesso de área de transferência. A limitação de colar impede que os aplicativos potencialmente prejudiciais pegar os dados da área de transferência sem o consentimento do usuário, permitindo ainda o recortar, copiar e colar operações quando iniciada pelo usuário por meio de comandos do teclado.

O exemplo de código a seguir mostra o comportamento da UIPermission métodos de classe.

ObservaçãoObservação

O exemplo de código destina-se a mostrar o comportamento dos métodos, não para demonstrar seu uso. Em geral, os métodos de classes de permissão são usados pela infra-estrutura de segurança; eles não são normalmente usados em aplicativos. Geralmente, apenas os construtores são usados no código do aplicativo. A instância criada valida ou controla o acesso a recursos usando o herdadas CodeAccessPermission métodos como Demand.


using System;
using System.Security;
using System.Security.Permissions;

public class UIPermissionDemo
{

    public static void Main(String[] args)
    {
        IsSubsetOfDemo();
        CopyDemo();
        UnionDemo();
        IntersectDemo();
        ToFromXmlDemo();
    }

    // IsSubsetOf determines whether the current permission is a subset of the specified permission.
    private static void IsSubsetOfDemo()
    {
        UIPermission uiPerm1 = new UIPermission(UIPermissionWindow.SafeTopLevelWindows);
        UIPermission uiPerm2 = new UIPermission(UIPermissionWindow.SafeSubWindows);
        CheckIsSubsetOfWindow(uiPerm1, uiPerm2);
        uiPerm1 = new UIPermission(UIPermissionClipboard.AllClipboard);
        uiPerm2 = new UIPermission(UIPermissionClipboard.OwnClipboard);
        CheckIsSubsetOfClipBoard(uiPerm1, uiPerm2);
    }
    private static void CheckIsSubsetOfWindow(UIPermission uiPerm1, UIPermission uiPerm2)
    {
        if (uiPerm1.IsSubsetOf(uiPerm2))
        {
            Console.WriteLine(uiPerm1.Window.ToString() + " is a subset of " +
                uiPerm2.Window.ToString());
        }
        else
        {
            Console.WriteLine(uiPerm1.Window.ToString() + " is not a subset of " +
                uiPerm2.Window.ToString());

        }
        if (uiPerm2.IsSubsetOf(uiPerm1))
        {
            Console.WriteLine(uiPerm2.Window.ToString() + " is a subset of " +
                uiPerm1.Window.ToString());
        }
        else
        {
            Console.WriteLine(uiPerm2.Window.ToString() + " is not a subset of " +
                uiPerm1.Window.ToString());

        }
    }
    private static void CheckIsSubsetOfClipBoard(UIPermission uiPerm1, UIPermission uiPerm2)
    {
        if (uiPerm1.IsSubsetOf(uiPerm2))
        {
            Console.WriteLine(uiPerm1.Clipboard.ToString() + " is a subset of " +
                uiPerm2.Clipboard.ToString());
        }
        else
        {
            Console.WriteLine(uiPerm1.Clipboard.ToString() + " is not a subset of " +
                uiPerm2.Clipboard.ToString());

        }
        if (uiPerm2.IsSubsetOf(uiPerm1))
        {
            Console.WriteLine(uiPerm2.Clipboard.ToString() + " is a subset of " +
                uiPerm1.Clipboard.ToString());
        }
        else
        {
            Console.WriteLine(uiPerm2.Clipboard.ToString() + " is not a subset of " +
                uiPerm1.Clipboard.ToString());

        }
    }
    // Union creates a new permission that is the union of the current permission
    // and the specified permission.
    private static void UnionDemo()
    {
        UIPermission uiPerm1 = new UIPermission(UIPermissionWindow.SafeTopLevelWindows);
        UIPermission uiPerm2 = new UIPermission(UIPermissionWindow.SafeSubWindows);
        UIPermission p3 = (UIPermission)uiPerm1.Union(uiPerm2);
        try
        {
            if (p3 != null)
            {
                Console.WriteLine("The union of " + uiPerm1.Window.ToString() +
                    " and \n\t" + uiPerm2.Window.ToString() + " is \n\t"
                    + p3.Window.ToString() + "\n");

            }
            else
            {
                Console.WriteLine("The union of " + uiPerm1.Window.ToString() +
                    " and \n\t" + uiPerm2.Window.ToString() + " is null.\n");
            }
        }
        catch (SystemException e)
        {
            Console.WriteLine("The union of " + uiPerm1.Window.ToString() +
                    " and \n\t" + uiPerm2.Window.ToString() + " failed.");

            Console.WriteLine(e.Message);
        }

    }
    // Intersect creates and returns a new permission that is the intersection of the
    // current permission and the permission specified.
    private static void IntersectDemo()
    {
        UIPermission uiPerm1 = new UIPermission(UIPermissionWindow.SafeTopLevelWindows, UIPermissionClipboard.OwnClipboard);
        UIPermission uiPerm2 = new UIPermission(UIPermissionWindow.SafeSubWindows, UIPermissionClipboard.NoClipboard);
        UIPermission p3 = (UIPermission)uiPerm1.Intersect(uiPerm2);

        Console.WriteLine("The intersection of " + uiPerm1.Window.ToString() + " and \n\t" +
            uiPerm2.Window.ToString() + " is " + p3.Window.ToString() + "\n");
        Console.WriteLine("The intersection of " + uiPerm1.Clipboard.ToString() + " and \n\t" +
                uiPerm2.Clipboard.ToString() + " is " + p3.Clipboard.ToString() + "\n");

    }
    //Copy creates and returns an identical copy of the current permission.
    private static void CopyDemo()
    {

        UIPermission uiPerm1 = new UIPermission(UIPermissionWindow.SafeTopLevelWindows);
        UIPermission uiPerm2 = new UIPermission(PermissionState.None);
        uiPerm2 = (UIPermission)uiPerm1.Copy();
        if (uiPerm2 != null)
        {
            Console.WriteLine("The copy succeeded:  " + uiPerm2.ToString() + " \n");
        }

    }
    // ToXml creates an XML encoding of the permission and its current state; FromXml reconstructs a
    // permission with the specified state from the XML encoding.
    private static void ToFromXmlDemo()
    {


        UIPermission uiPerm1 = new UIPermission(UIPermissionWindow.SafeTopLevelWindows);
        UIPermission uiPerm2 = new UIPermission(PermissionState.None);
        uiPerm2.FromXml(uiPerm1.ToXml());
        bool result = uiPerm2.Equals(uiPerm1);
        if (result)
        {
            Console.WriteLine("Result of ToFromXml = " + uiPerm2.ToString());
        }
        else
        {
            Console.WriteLine(uiPerm2.ToString());
            Console.WriteLine(uiPerm1.ToString());
        }

    }

}



.NET Framework

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

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core não compatível), Windows Server 2008 R2 (Server Core não compatível com SP1 ou posterior), Windows Server 2003 SP2

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.
Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
© 2013 Microsoft. Todos os direitos reservados.