Cenários de configuração ASP.NET

Quando o servidor recebe uma solicitação para um determinado recurso da Web, o ASP.NET calcula as definições de configuração desse recurso hierarquicamente, usando todos os arquivos de configuração localizados no caminho diretório virtual para o URL solicitada.A maioria das configurações locais substituem as configurações em arquivos de configuração pai.

Cenário de configuração 1

Por exemplo, você poderia ter um site da Web com a estrutura física de arquivo a seguir, onde a pasta Application Root é o diretório virtual do aplicativo.

Normalmente, a última configuração substitui as configurações para a mesma seção fornecida nos diretórios pai.No caso de um elemento coleção, as configurações não são substituídas; elas são adicionados à coleção.

Observação:

Um manipulador de seção personalizado pode implementar um esquema de herança diferente.

Suponhamos que haja um arquivo Web.config no diretório SubDir1 e nenhum nos diretórios Application Root ou SubDir2.Nesse caso, o ASP.NET está usando três arquivos de configuração para calcular as configurações para o diretório SubDir1.O arquivo de nível mais alto é aquele localizado no diretório %systemroot%\Microsoft.NET\Framework\NúmeroDaVersão\CONFIG.Este arquivo, que é chamado Machine.config, está no nível do computador.Todos os aplicativos do .NET Framework que executarem a versão especificada do .NET Framework (NúmeroDaVersão) herdam as configurações a partir desse arquivo.O próximo arquivo é o arquivo Web.config de raiz, que está no mesmo local.Todos os aplicativos ASP.NET que executarem a versão especificada do .NET Framework herdam suas configurações.O terceiro arquivo de configuração é o arquivo Web.config, que está localizado no diretório SubDir1.

Suponha que o arquivo Web.config no diretório SubDir1 contém o elemento identificaçãoAnônima com o atributo enabled definido como true.O valor padrão do atributo enabled é false.Este é um padrão interno e não é especificado em qualquer um dos arquivos de configuração raiz.Como há não arquivo de configuração nos diretórios Application Root ou SubDir2 que modificam o elemento anonymousIdentification, os usuários anônimos não têm acesso aos recursos do ASP.NET nesses diretórios.No entanto, os usuários anônimos terão acesso aos recursos do ASP.NET no diretório SubDir1.

Observação de segurança:

O sistema de configuração do ASP.NET se aplica somente a recursos do ASP.NET, que são os recursos registrados devem ser manipulados pelo ASP.NET usando aspnet_isapi.dll.Por padrão, o sistema de configuração não fornece autorização para recursos que não sejam do ASP.NET.Arquivos ASP, HTML, TXT, GIF e JPEG, por exemplo, são acessíveis por todos os usuários.No exemplo anterior, se a pesquisa em diretório está ativada e nenhuma outra restrição está no lugar, todos os usuários poderão exibir arquivos que não sejam do ASP.NET localizados no diretório raiz do aplicativo, SubDir1 e SubDir2.Para obter mais informações sobre segurança no ASP.NET, consulte Segurança de aplicativos da Web ASP.NET.

Cenário de configuração 2

O seguinte site tem uma estrutura de arquivo no qual o diretório virtual do aplicativo mapeia para o diretório raiz do aplicativo (MyAppRootDir) .

MyAppRootDir
    SubDir1
        SubDir1A
    SubDir2

Exceto durante condições descritas na seção "Restrições na herança do ASP.NET " em Hierarquia e Herança do Arquivo de Configuração do ASP.NET, uma configuração em qualquer diretório substitui as configurações escritas nos diretórios pai.Por exemplo, você pode configurar as configurações do aplicativo para conceder a todos os usuário o acesso aos recursos do ASP.NET em MyAppRootDir e SubDir2, mas conceder acesso aos recursos do ASP.NET no SubDir1 e SubDir1A somente a usuários selecionados, completando as seguintes etapas:

  1. Deixe MyAppRootDir como está.Os recursos do ASP.NET no MyAppRootDir herdam as configurações padrão do arquivo Machine.config, uma delas permite o acesso anônimo.Neste estágio, MyAppRootDir e os três subdiretórios herdam essa configuração de autenticação.

  2. Coloque um arquivo Web.config no SubDir1 com autenticação configurada para permitir somente a usuários selecionados o acesso ao SubDir1.Isso substitui o acesso anônimo permitido pela configuração no arquivo Machine.config e herda para baixo para SubDir1A.SubDir2, que está no mesmo nível que SubDir1, não herda a configuração de autenticação em SubDir1.

Todos os aplicativos ASP.NET herdam as configurações padrão no arquivo Web.config no nível da raiz.A configuração padrão para a seção de configuração de segurança desse arquivo permite que todos os usuários acessem todos os recursos URL.Não há nenhum arquivo de configuração no diretório raiz do aplicativo de exemplo que modifica a segurança, então todos os usuários têm acesso aos recursos do ASP.NET nela (porque esse diretório herda do arquivo de configuração no nível do computador).Se o arquivo Web.config no diretório SubDir1 contém uma seção de configuração de segurança que concede acesso apenas a determinados usuários então SubDir1A herdará essa configuração.Assim, todos os usuários têm acesso aos recursos do ASP.NET no diretório raiz o aplicativo e no SubDir2, mas somente usuários selecionados têm acesso a recursos do ASP.NET no SubDir1 e SubDir1A.

Cenário de configuração 3

Configurações para diretórios virtuais, que são nomes amigáveis para os diretórios que simplificam os caminhos de acesso e ocultam os nomes dos diretórios reais, são independentes da estrutura física do diretório.Como resultado, os diretórios virtuais devem estar organizados cuidadosamente para evitar problemas de configuração.Por exemplo, você pode configurar diretórios virtuais para recuperar o página ASP.NET chamado MyResource.aspx da seguinte estrutura de diretório físico.

MyDir
    SubDir1 (mapped from VDir1)
        SubDir1A (mapped from VDir1A)
            MyResource.aspx
    SubDir2

Nesse exemplo, há um arquivo Web.config no SubDir1 e outro arquivo Web.config no SubDir1A.Se um cliente acessa C:\Subdir1\Subdir1A\MyResource.aspx usando a URL https://localhost/vdir1/subdir1A/MyResource.aspx, o recurso herda as configurações de configuração de Vdir1.No entanto, se o cliente acessar o mesmo recurso usando o https://localhost/vdir1A/MyResource.aspx URL, ele não herda as configurações de Vdir1.Portanto, criar diretórios virtuais dessa forma não é recomendável porque ele pode causar resultados inesperados ou até mesmo uma falha de aplicativo.

Serviços de Informações da Internet (IIS) é o servidor Web para todos os recursos publicados pela Web.O sistema de configuração do ASP.NET se aplica somente a recursos do ASP.NET, que são os recursos que estão registrados para ser manipulado pelo ASP.NET usando aspnet_isapi.dll.Por padrão, o sistema de configuração não fornece segurança para recursos que não sejam do ASP.NET.Arquivos ASP, HTML, TXT, GIF e JPEG são acessíveis por todos os usuários.No exemplo anterior, se a pesquisa em diretório está ativada e nenhuma outra restrição está no lugar, todos os usuários poderão exibir arquivos que não sejam do ASP.NET localizados no diretório raiz do aplicativo, SubDir1 e SubDir2.

Consulte também

Outros recursos

Administrando ites da Web do ASP.NET

Configurando aplicativos