Autorização ASP.NET
Autorização determina se uma identidade deve ter acesso concedido a um recurso específico.No ASP.NET, existem duas maneiras para autorizar acesso a um determinado recurso:
File authorization File authorization is performed by the FileAuthorizationModule.It checks the access control list (ACL) of the .aspx or .asmx handler file to determine whether a user should have access to the file.Permissões ACL são verificados pela identidade Windows do usuário (se a autenticação do Windows é ativada) ou pela a identidade do processo ASP.NET do Windows.Para obter mais informações, consulte ASP.NET Impersonation.
URL authorization URL authorization is performed by the UrlAuthorizationModule, which maps users and roles to URLs in ASP.NET applications.This module can be used to selectively allow or deny access to arbitrary parts of an application (typically directories) for specific users or roles.
Usando Autorização de URL
Com a autorização de URL, você explicitamente permiti ou nega acesso a um determinado diretório pelo nome do usuário ou função.To do so, you create an authorization section in the configuration file for that directory.Para ativar a autorização de URL, você especifica uma lista de usuários ou funções nos elementos allow ou deny da seção authorization de um arquivo de configuração.As permissões estabelecidas para um diretório também se aplicam a subpastas, a menos que arquivos de configuração em um subdiretório o substitui.
The following shows the syntax for the authorization section:
<authorization>
<[allow|deny] usersrolesverbs />
</authorization>
The allow or deny element is required.You must specify either the users or the roles attribute.Ambos podem ser incluídos, mas ambos não são necessários.The verbs attribute is optional.
The allow e deny elementosconcedem e revogam acesso, respectivamente. Cada elemento suporta os atributos mostrados na tabela a seguir:
Atributo |
Descrição |
---|---|
users |
Identifica as identidades de destino (contas de usuário) para esse elemento. Usuários anônimos são identificados usando um ponto de interrogação (?).Você pode especificar todos os usuários autenticados usar um asterisco (*). |
roles |
Identifies a role (a RolePrincipal object) for the current request that is allowed or denied access to the resource.Para obter mais informações, consulte Gerenciando Autorização Usando Funções. |
verbs |
Defines the HTTP verbs to which the action applies, such as GET, HEAD, and POST.O padrão é " * ", que especifica todos os verbos. |
The following example grants access to the Kim identity and members of the Admins role, and denies access to the John identity (unless the John identity is included in the Admins role) and to all anonymous users:
<authorization>
<allow users="Kim"/>
<allow roles="Admins"/>
<deny users="John"/>
<deny users="?"/>
</authorization>
The following authorization section shows how to allow access to the John identity and deny access to all other users:
<authorization>
<allow users="John"/>
<deny users="*"/>
</authorization>
You can specify multiple entities for both the users and roles attributes by using a comma-separated list, as shown in the following example:
<allow users="John, Kim, contoso\Jane"/>
Note that if you specify a domain account name, the name must include both the domain and user name (contoso\Jane).
The following example allows all users to perform an HTTP GET for a resource, but allows only the Kim identity to perform a POST operation:
<authorization>
<allow verbs="GET" users="*"/>
<allow verbs="POST" users="Kim"/>
<deny verbs="POST" users="*"/>
</authorization>
Regras são aplicadas da seguinte forma:
Regras contidas nos arquivos de configuração no nível do aplicativo têm prioridade sobre regras herdadas.O sistema determina qual regra tem prioridade pela construção de uma lista de todas as regras mescladas para um URL, com as regras mais recentes (aquelas mais próximas na hierarquia) na cabeça da lista.
Dado um conjunto de regras mescladas para um aplicativo, o ASP.NET começa com a cabeça da lista e verifica regras até a primeira correspondência ser localizada.The default configuration for ASP.NET contains an <allow users="*"> element, which authorizes all users.(Por padrão, esta regra será aplicada pela última vez.) Se nenhuma outra regra de autorização coincidir, a solicitação será permitida.If a match is found and the match is a deny element, the request is returned with the 401 HTTP status code.If an allow element matches, the module allows the request to be processed further.
In a configuration file, you can also create a location element to specify a particular file or directory to which settings in that the location element should apply.
Consulte também
Conceitos
Configurando arquivos específicos e subpastas