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

Traduções deste artigo Traduções deste artigo
ID do artigo: 306590 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo refere-se para o seguinte Microsoft .net Framework Class Library namespaces:
  • System.Web.Security
  • System.Web.principal
Expandir tudo | Recolher tudo

Neste artigo

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:
Fluxo de dados ASP.NET
. aspx http://msdn.microsoft.com/en-us/library/xa68twcb (vs.71)
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

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:

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:
Provedor WindowsAuthenticationModule
. aspx http://msdn.microsoft.com/en-us/library/907hb5w9 (vs.71)

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:
O provedor de autenticação do Passport
. aspx http://msdn.microsoft.com/en-us/library/f8e50t0f (vs.71)

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.

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:
Autorização de ASP.NET
. aspx http://msdn.microsoft.com/en-us/library/wce3kxhd (vs.71)

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 If
End 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:
Segurança baseada em função
. aspx http://msdn.microsoft.com/en-us/library/52kd59t0 (vs.71)

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:
Microsoft.public.dotnet.Framework.ASPNET
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.

Propriedades

ID do artigo: 306590 - Última revisão: quinta-feira, 28 de junho de 2012 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Palavras-chave: 
kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMtpt
Tradução automática
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

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com