Noções básicas de.NET Framework operações de usuário (Visual Basic)
O .NET Framework fornece uma implementação de segurança baseada em papéis no namespace System.Security.Principal, que você pode usar para autorizar e autenticar usuários em seu aplicativo. Este tópico discute como trabalhar com autorização de aplicativo no .NET Framework e criar objetos IIdentity e IPrincipal para representar os usuários.
Um IIdentity encapsula um usuário autenticado. Um IPrincipal é uma combinação da identidade do usuário e das funções que ele ou ela possui. Você pode usar a identidade predefinida e classes principais no namespace System.Security.Principal ou você pode adicionar autenticação personalizada, criando classes que implementam as interfaces.
Para usar essas classes, você deve qualificar totalmente os nomes da interface ou importar os namespaces apropriados, incluindo as declarações Imports no início do código afetado. Para obter mais informações, consulte Declaração Imports (Tipo e Namespace .NET).
Usando a Segurança Baseada em Função nos aplicativos .NET Framework
Cada thread do aplicativo pode ter um associado objeto principal (acessível através da propriedade CurrentPrincipal)que representa o contexto de segurança do usuário em cujo nome o código está sendo executado. Um objeto principal encapsula um contexto de segurança de usuário do usuário (ou identidade). Usar dois objetos permitem uma separação de autenticação (no objeto identidade) e autorização (no principal).
Uma identidade de objeto deve implementar a interface IIdentity. Um objeto identidade representa um usuário específico e expõe as propriedades a seguir conforme exigido pelo IIdentity interface: Name, IsAuthenticated, and AuthenticationType. Objetos de identidade normalmente têm membros particulares adicionais que realizam a autenticação do usuário.
Um objeto principal deve implementar a interface IPrincipal. Um objeto principal encapsula o contexto de segurança do usuário ao expor os seguintes membros conforme exigido pelo IPrincipal interface: o IsInRole método, que executa autorização, e o Identity propriedade, que fornece acesso a objeto de identidade. do usuário
Trabalhando com Identidades
O .NET Framework fornece quatro classes que implementam a interface IIdentity:
Cada classe permite que você trabalhe com diferentes tipos de identidades de usuário. Para acessar o objeto WindowsIdentity atual para um aplicativo que usa a autenticação do Windows, use o método GetCurrent estático da classe WindowsIdentity. Você também pode definir o principal segmento atual chamando o InitializeWithWindowsUser método.
Você também pode criar classes de identidade personalizadas implementando a interface IIdentity na sua própria classe personalizada. Para obter mais informações sobre como criar identidades personalizadas, consulte Demonstra Passo a passo: Implementando autenticação personalizada e autorização (Visual Basic).
Trabalhando com Principais
O .NET Framework fornece a interface IPrincipal para vincular funções de usuário e identidades. Se o aplicativo executa autorização, ele deve usar um objeto que implementa IPrincipal. Por exemplo, as classes WindowsIdentity e GenericIdentity fornecem implementações internas de IPrincipal. Como alternativa, você pode criar suas próprias classes principais personalizadas com base no IPrincipal.
Você pode vincular o segmento atual para um IPrincipal o objeto, atribuindo ao objeto para o segmento CurrentPrincipal propriedade ou o CurrentPrincipal propriedade. Em seguida, você pode executar uma verificação de autorização ao testar se o usuário é um membro de uma função específica. Você faz isso usando o método IsInRole do objeto.
Os aplicativos ASP.NET manipulam objetos IPrincipal de forma diferente do que outros aplicativos do .NET Framework. O ASP.NET cria a aparência de uma sessão por meio do protocolo http independente. Como parte da sessão, o objeto IPrincipal que representa o usuário está disponível a partir da propriedade User do objeto HttpContext para todo o código executando a solicitação do usuário. O Common Language Runtime automaticamente atualiza CurrentPrincipal com o valor User após o evento OnAuthenticate do arquivo Global.asax. Os aplicativos ASP.NET frequentemente usam a propriedade User para realizar verificações de autorização.
Observação |
---|
Alterar manualmente a User atualiza automaticamente o CurrentPrincipal propriedade para todos os segmentos executando dentro do mesmo contexto HTTP. No entanto, alterar CurrentPrincipal não afeta a propriedade User. Isso afeta somente a thread escolhida para o restante da solicitação. |
No ASP.NET applications, o CurrentPrincipal atualizações de propriedade da User propriedade.
Para obter mais informações sobre como criar seus próprios tipos IPrincipal, consulte Demonstra Passo a passo: Implementando autenticação personalizada e autorização (Visual Basic).
Conceder permissões para trabalhar com IIdentity e objetos IPrincipal
Cuidado deve ser tomado quando se concede permissões para trabalhar com objetos IIdentity, porque esses objetos disponibilizam informações confidenciais relacionadas ao usuário. Você deve proteger o objeto IPrincipal do aplicativo do atual contra alterações porque a capacidade de autorização do aplicativo é baseado em seu objeto principal atual.
O .NET Framework fornece essa proteção ao requerer que estas operações tenham permissão de segurança de acesso a código. Conceda a permissão SecurityPermissionAttribute.ControlPrincipal a aplicativos que precisam manipular esses objetos usando Caspol. exe (Code Access Security Policy Tool).
Por padrão, todos os aplicativos instalados localmente têm essa permissão porque eles são executados sob o conjunto de permissões FullTrust.
Executar os seguintes métodos requer a permissão ControlPrincipal:
Consulte também
Tarefas
Demonstra Passo a passo: Implementando autenticação personalizada e autorização (Visual Basic)
Referência
Outros recursos
Autenticação e Autorização no .NET Framework com o Visual Basic