Você está offline; aguardando reconexão

INFO: Visão geral de segurança ASP.NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 306590
Este artigo refere-se para o seguinte Microsoft .net Framework Class Library namespaces:
  • System.Web.Security
  • System.Web.principal
Sumário
Este artigo fornece uma introdução ao ASP.NET segurança.

Visões gerais ASP.NET adicionais, consulte o seguinte Artigo da Base de dados de Conhecimento da Microsoft:
305140 INFO: ASP.NET roteiro
Mais Informações
ASP.NET dá mais controle para implementar a segurança seu aplicativo. ASP.NET segurança funciona em conjunto com Serviços de Informações da Internet da Microsoft Segurança (IIS) e inclui serviços de autenticação e autorização Implemente o modelo de segurança ASP.NET. ASP.NET também inclui uma baseada em função recurso de segurança que você pode implementar o Microsoft Windows e contas de usuário não-Windows.

Este artigo está dividido nas seguintes seções:

Fluxo de segurança com uma solicitação

As seguintes etapas descrevem a seqüência de eventos quando um cliente faz uma solicitação:
  1. Um cliente solicita uma página. aspx que reside em um IIS servidor.
  2. As credenciais do cliente são passadas para o IIS.
  3. O IIS autentica o cliente e encaminha o autenticado token com solicitação do cliente para o processo de trabalho ASP.NET.
  4. Com base no token autenticado do IIS e o configurações do aplicativo da Web, ASP.NET decide se represente um usuário no thread que está processando a solicitação. Em um diferente diferença entre o Microsoft Active Server Pages (ASP) e ASP.NET, ASP.NET nenhum mais personifica o usuário autenticado por padrão. Para habilitar a representação, Você deve definir o atributo impersonate da seção de identidade no arquivo Web. config para true.
Para obter mais informações sobre o fluxo de segurança, consulte o tópico a seguir na.NET Framework Software Development Kit (SDK) documentação: Para obter informações adicionais sobre ASP.NET de representação, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
306158 INFO: Implementando a representação em um aplicativo de ASP.NET
Voltar ao início

Configurações relacionadas

IIS mantém as configurações relacionadas à segurança do IIS metabase. No entanto, a ASP.NET mantém a segurança (e outros) configuração configurações em arquivos de configuração de linguagem de marcação extensível (XML). Embora isso geralmente simplifica a implantação de seu aplicativo de segurança necessita do ponto de Vista, o modelo de segurança do aplicativo adota o configuração correta da metabase do IIS e o aplicativo ASP.NET por meio de seu arquivo de configuração (Web. config).

A seguir seções de configuração relacionadas a segurança do ASP.NET: Voltar ao início

Autenticação

Autenticação é o processo pelo qual você obter identificação credenciais como nome de usuário e senha e validar essas credenciais contra alguma autoridade.

ASP.NET fornece autenticação quatro provedores:

Autenticação de formulários

Autenticação de formulários se refere a um sistema no qual não autenticado as solicitações são redirecionadas para um formulário que Hypertext Markup Language (HTML) os usuários digitam suas credenciais. Depois que o usuário fornece credenciais e envia o formulário, o aplicativo autentica a solicitação e os problemas de sistema um tíquete de autorização na forma de um cookie. Este cookie contém o credenciais ou uma chave para readquirir a identidade. Solicitações subseqüentes de navegador incluir automaticamente o cookie.

Para obter mais informações sobre Autenticação de formulários, consulte o seguinte tópico SDK.NET Framework documentação:
O provedor de autenticação de formulários
. aspx http://msdn.microsoft.com/en-us/library/907hb5w9 (vs.71)
Para autenticação de formulários de informações adicionais em ASP.NET, clique no artigo número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
301240 COMO: Implementar baseada em formulários autenticação em seu aplicativo ASP.NET C# .net

Autenticação do Windows

Autenticação do Windows, IIS executa a autenticação e o token autenticado é encaminhado para o processo de trabalho ASP.NET. A vantagem de usar o Windows a autenticação é que ele requer um mínimo de codificação. Deseja usar o Windows autenticação para representar a conta de usuário do Windows o IIS autentica Antes você entregar a solicitação para ASP.NET.

Para obter mais informações sobre a autenticação do Windows, consulte o seguinte tópico do .net Documentação do SDK Framework:

Autenticação do Passport

Autenticação do Passport é um serviço de autenticação centralizada que a Microsoft fornece, que oferece um logon único e principais serviços de perfil para sites membros. Normalmente, a autenticação do Passport é usada quando você precisa capacidade em vários domínios de logon único.

Para obter mais informações informações sobre autenticação do Passport, consulte o tópico seguinte a Documentação do SDK do.NET Framework:

Autenticação padrão

Autenticação padrão é usada quando não desejar nenhuma segurança no seu aplicativo da Web; acesso anônimo é necessário para segurança provedor. Entre todos os provedores de autenticação fornece autenticação padrão máximo desempenho do seu aplicativo. Este provedor de autenticação também é usado quando você usa o módulo de segurança personalizado.

Voltar ao início

Autorização

Autorização é o processo que verifica se o autenticado usuário tem acesso aos recursos solicitados.

ASP.NET oferece o seguintes provedores de autorização:

FileAuthorization

A classe FileAuthorizationModule executa autorização de arquivo e está ativa quando você usar Autenticação do Windows. FileAuthorizationModule é responsável por executar verificações de controle de acesso do Windows Listas (ACLs) para determinar se um usuário deve ter acesso.

UrlAuthorization

A classe UrlAuthorizationModule executa autorização de URL (Uniform Resource Locator) os controles de autorização com base no namespace URI. Espaços para nome URI podem ser bem diferente de caminhos de arquivo e pasta físicos que as permissões de NTFS Use.

UrlAuthorizationModule implementa ambas as declarações de autorização positivos e negativos; ou seja, você pode usar o módulo para permitir ou negar acesso seletivamente partes arbitrárias do namespace URI para usuários, funções (como gerente, testadores e administradores) e verbos (como GET e POST).

Para mais informações sobre autorização de ASP.NET, consulte o tópico seguinte na documentação do SDK do.NET Framework: Voltar ao início

Segurança baseada em função

Segurança baseada em função no ASP.NET é semelhante a baseada em função segurança usarem Microsoft COM + e Microsoft Transaction Server (MTS), Embora existam diferenças importantes. Não é de segurança baseada em função no ASP.NET limitado a grupos e contas do Windows. Por exemplo, se a autenticação do Windows e a representação é ativada, a identidade do usuário é uma identidade do Windows (User.Identity.Name = "Domínio"). Você pode verificar identidades participação em funções específicas e restringir o acesso de acordo. Para exemplo:

Código do .net Visual Basic
If User.IsInRole("BUILTIN\Administrators") Then   Response.Write("You are an Admin")Else If User.IsInRole("BUILTIN\Users") then   Response.Write("You are a User")Else   Response.Write("Invalid user")End if				
Código do Visual C# .net
if ( User.IsInRole("BUILTIN\\Administrators"))   Response.Write("You are an Admin");else if (User.IsInRole("BUILTIN\\Users"))   Response.Write("You are a User");else   Response.Write("Invalid user");				
Se você estiver usando autenticação de formulários, funções não são atribuídas para o usuário autenticado; Você deve fazer isso programaticamente. Para atribuir funções para o autenticada do usuário, use o evento OnAuthenticate do módulo de autenticação (que é os formulários módulo de autenticação neste exemplo) para criar um novo objeto GenericPrincipal e atribua a ele a propriedade HttpContext do usuário . O código a seguir ilustra Isso:

Código do .net Visual Basic
Public Sub Application_AuthenticateRequest(s As Object, e As EventArgs)   If (Not(HttpContext.Current.User Is Nothing)) Then      If HttpContext.Current.User.Identity.AuthenticationType = "Forms" Then         Dim id as System.Web.Security.FormsIdentity = HttpContext.Current.User.Identity         Dim myRoles(3) As String         myRoles(0)= "managers"         myRoles(1)= "testers"         myRoles(2)= "developers"         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles)       End If   End IfEnd Sub				
Código do Visual C# .net
public void Application_AuthenticateRequest(Object s, EventArgs e)      {   if (HttpContext.Current.User != null)   {      if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" )       {         System.Web.Security.FormsIdentity id = HttpContext.Current.User.Identity;         String[] myRoles = new String[3];         myRoles[0]= "managers";         myRoles[1]= "testers";         myRoles[2]= "developers";         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles);      }   }} 				
Para verificar se o usuário está em uma função específica e restringir o acesso Portanto, use o seguinte código (ou semelhante) em suas páginas. aspx:

Código do .net Visual Basic
If User.IsInRole("managers") Then   Response.Write("You are a Manager")Else If  User.IsInRole("testers") Then   Response.Write("You are a Tester")Else If User.IsInRole("developers") Then   Response.Write("You are a Developer")End if				
Código do Visual C# .net
if (User.IsInRole("managers"))   Response.Write("You are a Manager");else if (User.IsInRole("testers"))   Response.Write("You are a Tester");else if (User.IsInRole("developers"))   Response.Write("You are a Developer");				
Para obter informações adicionais, clique no artigo número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
306238 COMO: Implementar baseada em função de segurança com autenticação baseada em formulários em seu aplicativo ASP.NET Visual Basic .net
Para obter mais informações sobre segurança baseada em função, consulte o seguinte tópico na documentação do SDK do.NET Framework:
Referências
Para obter informações sobre diretrizes de segurança ASP.NET, consulte o seguinte documento MSDN:
Autenticação de ASP.NET: diretrizes de segurança do .net
http://msdn.microsoft.com/en-us/library/ms978378.aspx
Para obter mais informações sobre ASP.NET, consulte o seguinte grupo de notícias do MSDN: Para obter informações adicionais, clique no artigo números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
311094 BUG: Mensagem de erro "ConfigurationException" quando representado contas ler configuração
306359 PRB: Request.ServerVariables("LOGON_USER") retorna seqüência vazia no ASP.NET
313091 COMO: Criar chaves usando Visual Basic .net para uso em autenticação de formulários
313116 PRB: Solicitações de autenticação de formulários Are Not Directed to loginUrl Page
Para obter mais informações, consulte os seguintes livros:
Reilly, Douglas j Criação de aplicativos da Microsoft ASP.NET. Microsoft Press, 2001.

Esposito, Dino.Construindo soluções de Web com ASP.NET e ADO.NET. Microsoft Press, 2001.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 306590 - Última Revisão: 06/28/2012 09:13:00 - Revisão: 1.0

Microsoft ASP.NET 1.0, Microsoft ASP.NET 1.1

  • kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMtpt
Comentários