Partilhar via


Segurança e Confiança

O .NET Framework tem um modelo de segurança que trata os aplicativos de forma diferente dependendo de sua origem. Executáveis e assemblies que são da máquina de um usuário geralmente são executados com confiança total; os mesmos executáveis e assemblies executados pela Internet geralmente são executados com confiança parcial. Isso é para evitar que códigos mal-intencionados leiam ou modifiquem informações às quais não deveriam ter acesso, como arquivos locais, itens na Área de Transferência e outros recursos. Se um executável chama um assembly, que por sua vez chama outro assembly que requer um certo nível de confiança, então o nível mais baixo de confiança de todos os componentes na cadeia é aplicado. No entanto, um administrador em uma máquina pode definir permissões específicas que substituem as permissões padrão.

Uma visão geral do modelo de segurança é fornecida em Secure, Light-Weight Client-Side Controls, e você pode obter mais detalhes sobre o modelo de segurança em Code Access Security in Practice. Uma boa visão geral sobre a segurança de bibliotecas (que é especialmente importante para objetosUserControl em uma página da Web) pode ser encontrada em Usando bibliotecas dede código parcialmente confiáveis e outras informações de segurança sobre controles gerenciados podem ser encontradas em Writing Secure Managed Controls.

Permissões

A maioria dos objetos gerenciados e membros na API de tecnologias do Tablet PC tem dois requisitos:

  • A execução é sempre necessária.
  • FullTrust é necessário quando a ação de segurança InheritanceDemand ocorre. Isso significa que a confiança total é necessária quando uma classe derivada herda uma classe ou substitui um método do SDK do Tablet PC.

A tabela a seguir lista as classes e os membros que exigem permissões adicionais. As permissões para uma determinada classe também se aplicam a todos os seus membros não listados nesta tabela.

Classe ou Método Permissões
CanPaste UIPermissionClipboard.AllClipboard
Ink.ClipboardCopy UIPermissionClipboard.OwnClipboard
Ink.ClipboardColar UIPermissionClipboard.AllClipboard
InkCollector UIPermissionWindow.SafeTopLevelWindows
InkCollector(IntPtr) UIPermissionWindow.SafeTopLevelWindows e SecurityPermissionFlag.UnmanagedCode
InkCollector.Handle UIPermissionWindow.AllWindows e SecurityPermissionFlag.UnmanagedCode (veja a nota abaixo)
InkEdit UIPermissionWindow.SafeTopLevelWindows
InkOverlay UIPermissionWindow.SafeTopLevelWindows
InkOverlay(IntPtr) UIPermissionWindow.SafeTopLevelWindows e SecurityPermissionFlag.UnmanagedCode
InkOverlay.Handle UIPermissionWindow.AllWindows e SecurityPermissionFlag.UnmanagedCode (veja a nota abaixo)
InkPicture UIPermissionWindow.SafeTopLevelWindows
PenInputPanel Veja a nota abaixo.
InkRenderer UIPermissionWindow.SafeTopLevelWindows
Draw, DrawStroke UIPermissionWindow.SafeTopLevelWindows e SecurityPermissionFlag.UnmanagedCode
Renderer.InkSpaceToPixel(IntPtr,Ponto), Renderer.InkSpaceToPixel(IntPtr,Point[]) UIPermissionWindow.SafeTopLevelWindows e SecurityPermissionFlag.UnmanagedCode
Renderer.PixelToInkSpace(IntPtr,Point), Renderer.PixelToInkSpace(IntPtr,Point[]) UIPermissionWindow.SafeTopLevelWindows e SecurityPermissionFlag.UnmanagedCode
DynamicRenderer UIPermissionWindow.SafeTopLevelWindows
DynamicRenderer(IntPtr) UIPermissionWindow.SafeTopLevelWindows e SecurityPermissionFlag.UnmanagedCode
RealTimeStylus UIPermissionWindow.SafeTopLevelWindows
RealTimeStylus(IntPtr), RealTimeStylus(IntPtr,Boolean), RealTimeStylus(IntPtr,Tablet) UIPermissionWindow.AllWindows e SecurityPermissionFlag.UnmanagedCode

 

Observação

Geralmente é preferível usar um controle em vez de um identificador (IntPtr) para construtores, porque os controles exigem menos permissões. Da mesma forma, é preferível usar um objeto Graphics em vez de um identificador para Renderer.Draw, Renderer.InkSpaceToPixel e Renderer.PixelToInkSpace.

 

Observação

As propriedades InkCollector.Handle e InkOverlay.Handle não exigem permissão SecurityPermissionFlag.UnmanagedCode se o identificador for para um controle Windows Forms, mas sim para outras janelas.

 

 

Outras considerações

Algumas outras considerações de segurança conhecidas são:

  • O Microsoft Internet Explorer 6 ou superior é necessário para que os controles da Web funcionem corretamente. Com o Internet Explorer 5.5, apenas os controles gerenciados iniciais são carregados; Não é possível carregar controles adicionais dinamicamente em tempo de execução.
  • Se você estiver usando o Windows XP Service Pack 2 (SP2) e CLR1.0, ter controles da Web no Internet Explorer exigirá adicionar o site como um site confiável, mesmo que eles estejam na zona da Intranet. No entanto, quando você fizer isso, eles não serão mais executados na zona de Site Confiável, embora sejam executados na zona de Intranet. Esse problema foi corrigido com CLR1.1.