Limitando acesso a sites da Web ASP.NET

Limitando o acesso a um aplicativo é geralmente dividido em dois tópicos: autenticação, que é como um aplicativo identifica quem é você e autorização, que é como um aplicativo identifica o que está permitido a fazer.Este tópico fornece uma visão geral sobre autenticação e autorização em ASP.NET Web aplicativos.Para obter mais informações, consulte: Segurança de aplicativos da Web ASP.NET.

Autenticando usuários

Aplicativos ASP.NET oferecem várias opções diferentes para autenticar usuários.Para aplicativos somente leitura que podem ser exibidos por qualquer pessoa, use a autenticação anônima.Para acesso mais restrito a um aplicativo, você precisará usar alguma forma de autenticação para identificar usuários.Há duas identidades que você deve para considerar ao autenticar usuários para seu aplicativo ASP.NET: a identidade do aplicativo usado para acessar recursos do Windows e a identidade do usuário ASP.NET que é usada para identificar um usuário para o ASP.NET.

O aplicativo pode executar sem uma identidade de usuário ASP.NET, mas você sempre terá uma identidade de aplicativo do Windows.Para ajudar a proteger seu aplicativo, você deve restringir a identidade do Windows para o aplicativo aos recursos necessários, como arquivos e acesso a banco de dados.

Identidade do aplicativo ASP.NET

Enquanto uma página ASP.NET está executando, o servidor deve ter um contexto de segurança, ou identidade, para o processo que está executando o código do ASP.NET.Essa identidade é usada quando da proteção de recursos usando segurança integrada do Windows, como arquivos protegidos usando o sistema de arquivos NTFS ou recursos da rede.

Por exemplo, os arquivos que contêm o código do aplicativo armazenado na subpasta App_Code de um aplicativo só precisarão ser lidos pela identidade do aplicativo ASP.NET.Portanto, as configurações de segurança para os arquivos no diretório App_Code podem ser restringidas para que a identidade do aplicativo ASP.NET tenha acesso somente leitura.Outro uso comum da identidade Windows do aplicativo ASP.NET é como a identidade de uma conexão a um Servidor SQL usando Segurança Integrada.Para obter mais informações, consulte ASP.NET Required Access Control Lists (ACLs) e Como: Acesso o SQL servidor usando segurança integrada do Windows.

A identidade do um aplicativo ASP.NET é determinada por vários fatores.Por padrão, páginas ASP.NET executam com a identidade Windows do serviço que processa páginas ASP.NET no servidor de Web.Em um computador executando Windows Server   2003, que a identidade é a identidade do pool de aplicativos do qual o aplicativo ASP.NET é uma parte (por padrão, a conta Serviço Network).Em computadores executando Windows   2000 e Windows   XP Professional, a identidade é a conta ASPNET local que é criada quando o .NET Framework é instalado.Esta identidade pode ser configurada para uma identidade diferente se desejar.Para obter mais informações, consulte Configurando Identidade de Processo do ASP.NET.

Você pode modificar a identidade do Windows que executa a página ASP.NET usando o elemento identidade da seção de configuração system.web.The identity elemento pode ser usado para instruir ASP.NET a representar um ID de usuário do Windows. Representar uma identidade de Windows significa que sistema autônomo páginas ASP.NET para o aplicativo serão executado sistema autônomo a identidade do Windows.Você pode especificar um nome de usuário e uma senha para representar.Como alternativa, você pode ativar representação e ASP.NET será executado em uma das seguintes maneiras: uma identidade anônima especificada pelo IIS, ou a identidade do navegador autenticado conforme determinado pelo IIS (por exemplo, autenticação anônima, autenticação Windows integrada (NTLM) e assim por diante).Para obter mais informações, consulte ASP.NET Impersonation.

Se você estiver representando uma identidade de Windows, você pode executar o código que reverte para a identidade original do processo em vez da Identificação do usuário representada.Por esse motivo, em ambientes onde você precisa manter um aplicativo separado do outro, você deve isolar os aplicativos em pools de aplicativos separados em computadores que executam Windows Server   2003.Cada pool de aplicativos deve ser configurado com uma identidade exclusiva Windows

Você pode facilmente determinar a identidade Windows do segmento que está executando a página ASP.NET do sistema operacional do Windows usando a propriedade Name do retorno WindowsIdentity do método GetCurrent conforme o exemplo de código a seguir.

<%=System.Security.Principal.WindowsIdentity.GetCurrent().Name%>

Usuário ASP.NET

A identidade do usuário ASP.NET é usado para acessar recursos específicos ASP.NET-.Por exemplo, você pode identificar uma parte do seu aplicativo só que está disponível para determinados usuários, enquanto outras partes do seu aplicativo estiver disponível para todos os usuários.

O usuário do ASP.NET é determinado pelo elemento authentication sa seção system.web do arquivo Web.config para seu aplicativo.Você tem várias opções para autenticar a identidade do seu aplicativo ASP.NET.Você pode usar o nome de usuário Windows que é determinado pelo IIS, Autenticação de Formulários ASP.NET, autenticação do Passport ou um esquema de autenticação personalizado.A identidade do ASP.NET pode ser acessada usando a propriedade User do atual HttpContext.Para obter detalhes, consulte:Autenticação do ASP.NET.

Você, se estiver usando autenticação formulários ASP.NET, ou uma solução autenticação personalizada, para fornecer a identidade ASP.NET, utilize a associação ASP.NET para fornecer um armazenamento de dados de usuário e a funcionalidade de gerenciamento de usuário.Para obter mais informações, consulte Gerenciando usuários usando Associação.

Autorizar usuários

Autorização envolve restringir o acesso de usuário a apenas os recursos que são necessários.Isso inclui restringir o acesso a somente os arquivos necessários, bancos de dados, e partes do seu aplicativo.Além disso, isso inclui usar segurança de acesso a código para restringir o acesso a código.

Você pode restringir o acesso a arquivos usando listas de controle de acesso NTFS e o FileAuthorizationModule.Para obter mais informações, consulte Autorização ASP.NET e ASP.NET Required Access Control Lists (ACLs).

Você pode restringir o acesso a partes do seu aplicativo usando o UrlAuthorizationModule e Gerenciamento da Função do ASP.NET.Para obter mais informações, consulte Autorização ASP.NET e Gerenciando Autorização Usando Funções.

Consulte também

Conceitos

Segurança em aplicativos da Web em tempo de execução