ID do artigo: 317012 - Última revisão: terça-feira, 1 de novembro de 2005 - Revisão: 12.3 Processo e identidade de solicitação no ASP.NET
Nesta páginaSumário Este artigo descreve os direitos de acesso concedidos à conta do processo padrão e descreve algumas situações em que eles podem ser extremamente restritivos a determinadas tarefas. Na instalação padrão no Microsoft Windows 2000 e no Microsoft Windows XP, o ASP.NET executa um código de aplicativo Web em um processo de operador. Por padrão, a identidade desse processo usa uma conta local chamada ASPNET (cujo nome completo é aspnet_wp). Nas versões beta do ASP.NET, a identidade do processo é System, uma ferramenta administrativa extremamente poderosa que possui muitos direitos de acesso no computador. Para conseguir uma instalação padrão com menos privilégios, a versão final do ASP.NET usa a conta ASPNET mais fraca, mais indicada para a maioria dos aplicativos Web. Observação Por padrão, se você estiver usando os Serviços de informações de Internet (IIS) 6.0 da Microsoft, os aplicativos da Web ASP.NET serão executados no contexto de segurança da conta NetworkService. Mais InformaçõesConfigurar a identidade do processoÉ possível configurar a identidade do processo na seção <processModel> do arquivo Machine.config no subdiretório Config do diretório raiz de instalação. Os atributos userName e password controlam a identidade do processo. Os valores padrão desses atributos são:Caso queira usar um processo com mais direitos de acesso, você pode definir o atributo userName para System, o que faz o processo do operador do ASP.NET ser executado com a mesma identidade do processo Inetinfo.exe. Por padrão, o processo Inetinfo.exe é executado como a identidade System. Ao configurar o processo do operador ASP.NET para usar a identidade System, ele pode acessar grande parte dos recursos do computador local. Em computadores executando o Windows 2000 ou o Windows XP, a conta System também possui credenciais de rede e pode acessar recursos de rede como a máquina local. Para configurar o processo para ser executado como a identidade System, altere o atributo userName na seção <processModel> da seguinte forma: Permissões padrão para a conta ASPNETA conta ASPNET é criada como uma conta local durante a instalação do ASP.NET. Ela pertence apenas ao grupo Usuários do computador em questão. Por isso, ela possui todos os direitos ligados a esse grupo, podendo acessar todos os recursos aos quais ele tem acesso. A conta ASPNET herda os seguintes direitos de usuário do grupo Usuários:
A seguinte lista resume as ACLs (listas de controle de acesso) necessárias à conta ASPNET. As instalações padrão do Windows 2000 e do Microsoft .NET Framework possuem essas ACLs.
Observação Por padrão, a conta ASPNET normalmente não tem os direitos de acesso apropriados para realizar algumas das tarefas descritas nesse artigo. Acessando os recursosAs seções a seguir descrevem como usar diversos recursos. É possível acessar muitos deles localmente, caso a representação esteja ativada e a conta representada tenha acesso ao recurso. Porém, a representação costuma não funcionar quando se tenta acessar recursos remotos, a menos que o aplicativo use um mecanismo de autenticação que possa ser delegado, como as autenticações Kerberos ou Básica. Também é possível usar serviços COM+ para acessar recursos, o que está descrito na seção Como executar o código com uma identidade fixa.Como usar os recursos de arquivoPara permitir que um aplicativo executando a conta ASPNET grave nos arquivos, é possível representar um usuário específico no código antes de gravar nos arquivos ou é possível conceder permissões de gravação à conta ASPNET. É possível conceder permissões de gravação para um arquivo específico ou para hierarquias de diretório.Importante Ao conceder permissões de gravação para um arquivo específico ou para hierarquias de diretório à conta ASPNET, todos os aplicativos da Web ASP.NET executando em uma conta ASPNET no servidor também são capazes de gravar nesse arquivo ou nas hierarquias de diretório. Para obter informações adicionais sobre como representar um usuário específico no código , clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft: 306158
(http://support.microsoft.com/kb/306158/
)
Como implementar a representação em um aplicativo ASP.NET
Para alterar a lista de controle de acesso para um arquivo, execute as seguintes etapas:
ASP.NET 1.1 usa a pasta <Nome da unidade>\Documents and Settings\<Nome do computador>\ASPNET para armazenar os arquivos de processo (em que <Nome da unidade> é a unidade no computador na qual o ASP.NET está instalado e <Nome do computador> é o nome do computador). Ativando a representaçãoCom a representação, a entidade de solicitação é executada no contexto de segurança, como usuário autenticado ou como usuário anônimo. No ASP.NET, a representação é opcional, não estando ativada por padrão. Para ativar a representação no nível do computador ou aplicativo, adicione a seguinte diretiva de configuração na seção <system.web> dos arquivos Machine.config ou Web.config:Como usar os bancos de dadosAplicativos que usam a autenticação SQL para se conectar a um banco de dados não costumam ser afetados pela alternância da conta ASPNET. Isso também acontece com os aplicativos que usam a autenticação e a representação integradas. Porém, se um aplicativo não estiver sendo representado e estiver usando uma autenticação Windows, será necessário conceder o acesso ao banco de dados para a conta ASPNET.Não é possível usar essa conta durante a tentativa de autenticação para o Microsoft SQL Server, usando a autenticação integrada do Windows em pipes nomeados. No entanto, é possível usar a conta ASPNET com a autenticação integrada do Windows por meio do transporte TCP. Caso um aplicativo precise usar um banco de dados do Microsoft Access, a conta ASPNET deve ter permissão para gravar nesse arquivo de banco de dados. Os administradores precisam ajustar as permissões de acordo. Como usar o log de eventosAplicativos que precisam gravar no log de eventos podem fazer isso ao mesmo tempo em que são executados com a conta ASPNET. Caso precise criar uma nova categoria de log de eventos, um aplicativo deve criar uma chave do Registro na seção HKEY_LOCAL_MACHINE, pois a conta ASPNET não é capaz de fazê-lo.Para criar a categoria durante o tempo de execução, é necessário ativar a representação e, em seguida, representar uma conta com mais direitos de acesso. Um administrador também pode criar a categoria e o aplicativo é capaz de gravar na categoria durante a execução. Se os aplicativos precisarem criar novas categorias de log de eventos, crie-as durante a instalação. Após a sua criação, a conta ASPNET é capaz de gravar no log de eventos do aplicativo. Usando os serviços de diretório e o Active Directory do sistemaSe um aplicativo da Web precisar de acesso ao Active Directory, ele pode usar a representação em um ambiente que dê suporte à delegação. Como alternativa, o aplicativo também pode fornecer credenciais explícitas para o construtor DirectoryEntry no espaço para nome System. DirectoryServices, para poder acessar o Active Directory. Se o aplicativo usar credenciais explícitas, os aplicativos deverão armazená-las corretamente, usando uma técnica como a das seqüências de caracteres de construção COM+ ou APIs de proteção de dados do Windows.Usando os contadores de desempenhoA conta ASPNET possui permissão suficiente para gravar (mas não para ler) dados do contador de desempenho. Caso o aplicativo precise ler esses dados ou criar categorias para o contador de desempenho, as permissões Administrador ou Usuário avançado serão necessáriasSe os aplicativos precisarem criar novas categorias para o contador de desempenho, crie-as durante a instalação. Após a sua criação, a conta ASPNET será capaz de gravar nos contadores. Também é possível usar a ferramenta Monitor de desempenho (Perfmon.exe) para acompanhar os contadores de desempenho com a conta ASPNET. No Windows 2000, execute as seguintes etapas:
Iniciando servidores COM fora do processoAplicativos que precisam iniciar servidores COM fora do processo durante a execução da conta ASPNET podem especificamente conceder permissões de inicialização para a conta, usando a ferramenta Dcomcnfg.exe.Problemas de depuraçãoPor padrão, não é possível fazer uma chamada de serviço Web XML a partir de um aplicativo cliente. Para isso, é necessário adicionar a conta ASPNET ao grupo Usuários depuradores no computador no qual o serviço está sendo executado.Executando o código com uma identidade fixaEm serviços COM+, é possível executar códigos com uma identidade fixa. É possível usar a classe ServicedComponent do espaço para nome System.EnterpriseServices com o objetivo de gravar componentes de código gerenciados que usam serviços COM+. É possível reunir a funcionalidade privilegiada em uma classe derivada de ServicedComponent e executar essa classe como um aplicativo de servidor COM+ com uma identidade configurada.Compilando os arquivos em código em compartilhamentos UNCNo ASP.NET, é possível usar diversos métodos para desenvolver arquivos de aplicativos:
Usando o ASP.NET em controladores de domínio primário ou de backupPor padrão, se você estiver usando o ASP.NET 1.1 em um controlador de domínio, os aplicativos da Web ASP.NET serão executados no contexto de segurança da conta IWAM_<Nome do computador> (no qual <Nome do computador> é o nome do computador). Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft: 315158
(http://support.microsoft.com/kb/315158/
)
CORREÇÃO: O ASP.NET não funciona com a conta ASPNET padrão em um controlador de domínio
voltar ao inícioLendo a metabase do IISA conta ASPNET não pode ler a metabase do IIS. Se um aplicativo precisar acessar as configurações da metabase, é possível conceder acesso de leitura a alguns nós dela, usando o utilitário Metaacl.exeCaso um aplicativo precise usar os arquivos .disco, que dependem da capacidade de leitura da metabase do ISS para fornecer serviços de diretório, será preciso conceder acesso de leitura da metabase para a conta ASPNET. Usando o gerenciamento do sistema e WMIO WMI (Windows Management Instrumentation) é um recurso administrativo extremamente eficaz que lhe permite gerenciar e acompanhar computadores com o Windows. No entanto, quando os aplicativos ASP.NET são executados na conta ASPNET, ela possui apenas as mesmas permissões padrão de Todos. Entre essas permissões estão a leitura de dados WMI, a gravação de dados do provedor e a execução de métodos do provedor no computador local. Informações adicionais sobre os mecanismos de segurança da WMI podem ser obtidas na documentação SDK da WMI ou na MSDN.Observação No Windows 2000 sem o SP3 (Service Pack 3) ou mais recente ou no Windows XP sem SP1 (Service Pack 1)ou mais recente, aplicativos da Web do ASP.NET executados na conta ASPNET podem não funcionar e uma mensagem de erro "Acesso negado (0x80041003)" é exibida. Isso acontece porque a conta não possui privilégios suficientes para acessar determinados espaços para nome da WMI. Para resolver esse problema, instale o Windows XP SP1 (ou mais recente) ou o Windows 2000 SP3 (ou mais recente). Para solucionar o problema, execute as seguintes etapas:
Interagindo com a Área de trabalhoQuando os serviços do IIS são configurados para permitir a interação com a Área de trabalho, a conta ASPNET não precisa dos direitos apropriados para acessá-la, devido às DACLs (Discretionary Access Control Lists) na estação da janela padrão e na Área de trabalho. Os administradores podem alterar essas listas ou é possível executar o processo com uma conta que permita acessar esses objetos.Removendo o ASP.NETAo remover o ASP.NET, a conta ASPNET é desativada e permanece no sistema. A conta ASPNET pode ser excluída, caso não haja intenção de reinstalar o ASP.NET.Se o ASP.NET for reinstalado após a exclusão explícita da conta, será criada uma nova conta ASPNET com um novo SID (identificador de segurança). Dessa forma, todas as ACLs referentes à conta ASPNET anterior não se aplicam à nova conta. Referências Para obter informações adicionais sobre as Listas de controle de acesso padrão no Windows 2000, consulte o seguinte documento da Microsoft (em inglês): http://www.microsoft.com/windows2000/docs/SecDefs.doc
(http://www.microsoft.com/windows2000/docs/secdefs.doc)
Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft: 329290
(http://support.microsoft.com/kb/329290/
)
Como usar o utilitário ASP.NET para criptografar credenciais e as seqüências de conexão do estado da sessão
315158
(http://support.microsoft.com/kb/315158/
)
CORREÇÃO: O ASP.NET não funciona com a conta ASPNET padrão em um controlador de domínio
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções deste artigo
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email
Voltar para o início