Identidade de processo e um pedido no ASP.NET

Traduções de Artigos Traduções de Artigos
Artigo: 317012 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo descreve os direitos de acesso que são concedidos à conta de processo predefinida e descreve situações em que estes direitos poderão ser demasiado restritivos para determinadas tarefas.

Na instalação predefinida do ASP.NET no Microsoft Windows 2000 e Microsoft Windows XP, o ASP.NET é executado Web código da aplicação num processo de trabalho. A identidade deste processo utiliza uma conta local com o nome da conta ASPNET (em que o nome completo é a conta aspnet_wp) por predefinição. Em versões beta do ASP.NET, a identidade do processo é sistema, que é uma conta poderosa e administrativa que inclui muitos direitos de acesso no computador. Para fornecer uma instalação predefinida com menos privilégios, a versão do ASP.NET utiliza a conta mais fraco do ASPNET, que é adequada para a maior parte das aplicações da Web.

Nota Por predefinição, se estiver a utilizar Microsoft (IIS) 6.0, as aplicações Web do ASP.NET irão executado no contexto de segurança da conta do serviço de rede.

Mais Informação

Configurar a identidade do processo

Pode configurar a identidade do processo no <processmodel> secção do ficheiro Machine.config no subdirectório Config do directório de raiz de instalação. userName e os atributos de palavra-passe controlam a identidade do processo. Os valores predefinidos para estes atributos são da seguinte forma:
<processModel  userName="machine" password="AutoGenerate" />
				
o computador e os valores de AutoGenerate indicam ao ASP.NET para utilizar a conta ASPNET incorporada e utilizar uma palavra-criptograficamente forte, aleatória passe que é armazenada na local autoridade de segurança (LSA) para essa conta.

Se pretender utilizar um processo que tenha mais direitos de acesso, pode definir o atributo userName para System , que faz com que o processo de trabalho do ASP.NET seja executado com a mesma identidade que o processo Inetinfo.exe. O processo Inetinfo.exe é executado por predefinição como a identidade sistema. Quando configura o processo de trabalho do ASP.NET para utilizar a identidade de sistema, o processo de trabalho do ASP.NET pode aceder a quase todos os recursos no computador local. Em computadores que executem o Windows 2000, Windows XP ou Microsoft Windows Server 2003, a conta do sistema também tenha credenciais de rede e podem aceder a recursos como a conta de computador de rede. Para configurar o processo para ser executado como a identidade sistema, altere o atributo userName no <processmodel> secção da seguinte forma:
<processModel  userName="SYSTEM" password="AutoGenerate" />
				

Permissões predefinidas para a conta ASPNET

A conta ASPNET é criada como uma conta local quando instala o ASP.NET. A conta ASPNET apenas pertence ao grupo utilizadores nesse computador. Por conseguinte, a conta ASPNET tem todos os direitos que estão associados ao grupo Utilizadores e podem aceder a quaisquer recursos que o grupo utilizadores é concedido acesso. A conta ASPNET herda os seguintes direitos de utilizador utilizadores do grupo.
Reduzir esta tabelaExpandir esta tabela
Direito de utilizadorEXPLICAÇÃO
SeChangeNotifyPrivilege Ignorar verificação transversal.
SeUndockPrivilege Remova o computador da estação de ancoragem.
SeInteractiveLogonRight Iniciar sessão localmente.
SeNetworkLogonRight Aceder a este computador a partir da rede.
Em conjunto com estes direitos, a conta ASPNET é também concedida os direitos seguintes por predefinição:
Reduzir esta tabelaExpandir esta tabela
Direito de utilizadorEXPLICAÇÃO
SeServiceLogonRight Inicie sessão como um serviço.
SeBatchLogonRight Inicie sessão como tarefa batch.
SeDenyInteractiveLogonRight Negar início de sessão localmente.
Permissões de acesso completo para o ASPNET ASP.NET concede específico, conta para as seguintes pastas:
  • Ficheiros temporários de ASP.NET
  • %windir%\temp
Além disso, o ASP.NET concede permissão de leitura para o directório de instalação do Microsoft .NET Framework.

A lista seguinte descreve o Access controlo listas (ACL necessárias para a conta ASPNET). As instalações predefinidas do Windows 2000 e o Microsoft .NET Framework incluem estas ACLs.
  • localização : %installroot%\ASP.NET ficheiros temporários
    Tipo de acesso : leitura/escrita na pasta e pasta da lista de índice na pasta de raiz da unidade
    conta : conta de processo e configurado contas de representação
    Descrição : Este é a localização para a compilação dinâmica ASP.NET. Abaixo desta localização, código de aplicação é gerado num directório distintas para cada aplicação. Pode utilizar o atributo tempDir no <compilation> secção para configurar a localização raiz.

    Nota Se alterar machine.config para guardar os ficheiros temporários de ASP.NET numa localização diferente, a conta ASPNET tem de ter o tipo de acesso Listar conteúdo das pastas no nível da raiz da unidade.
  • localização : %windir%\temp
    tipo de acesso : leitura/escrita
    conta : processo conta
    Descrição : Este é o local que os serviços Web XML (Extensible Markup Language) utiliza para gerar proxies de serialização.
  • localização : directório de aplicações
    tipo de acesso : leitura
    conta : conta de processo e configurado contas de representação
    Descrição : Este é a localização para conteúdo da aplicação (apenas acesso de leitura necessária).
    Para mais informações, visite o seguinte Web site da Microsoft:
    http://msdn2.microsoft.com/en-us/library/aa302396.aspx
  • localização : Web site raiz (%systemdrive%\inetpub\wwwroot ou o caminho que o Web site predefinido aponta para)
    tipo de acesso : leitura
    conta : conta de processo e configurado contas de representação
    Descrição : ASP.NET tenta ler ficheiros de configuração e monitorizar as alterações na drive: \inetpub\wwwroot\web.config.
  • localização : % raiz de instalação % hierarquia
    tipo de acesso : leitura
    conta : conta de processo e configurado contas de representação
    Descrição : ASP.NET tem de conseguir aceder às assemblagens do .NET Framework no ficheiro Machine.config (no subdirectório \Config em % raiz de instalação).
  • localização : %windir%\assembly
    tipo de acesso : leitura
    conta : processo conta ou configurado contas de representação
    Descrição : Este é a cache de assemblagem global contém assemblagens partilhadas.
Para mais informações sobre predefinido baseado no Windows 2000 ACL, Access Control List computadores, consulte a referência "Predefinido definições de controlo de acesso no Windows 2000" na secção REFERENCES.

Nota Por predefinição, a conta ASPNET normalmente não tem direitos de acesso correctas para efectuar algumas das tarefas que são descritas neste artigo.

Aceder a recursos

As secções seguintes descrevem como utilizar vários recursos. Pode aceder muitos destes recursos localmente se activar a representação e conceder acesso de conta representado ao recurso. No entanto, muitas vezes, a representação não funciona quando tenta aceder a recursos remotos, a menos que a aplicação utiliza um mecanismo de autenticação que pode ser delegado, como Kerberos ou a autenticação básica. Também pode utilizar serviços COM + para aceder a recursos, que está destacada a Running code with a fixed identity secção.

Utilizar recursos de ficheiro

Para activar uma aplicação com a conta ASPNET para escrever ficheiros, pode representar um utilizador específico no código antes writting aos ficheiros ou pode conceder permissões de escrita para a conta ASPNET. Pode conceder menos permissões para um ficheiro individual ou para hierarquias de directórios.

importante Quando concede permissões de escrita para um ficheiro individual ou para hierarquias de directórios para a conta ASPNET, todos os aplicativos da Web do ASP.NET em execução sob a conta ASPNET no servidor também são possível escrever este ficheiro ou as hierarquias de directórios. Para obter mais informações sobre a representar um utilizador específico no código, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
306158Como implementar a representação numa aplicação do ASP.NET
Para alterar o Access lista de controlo para um ficheiro, siga estes passos:
  1. Abra o Explorador do Windows.
  2. Seleccione o ficheiro ou pasta para o qual pretende alterar permissões.
  3. No menu ficheiro , clique em Propriedades .
  4. Faça clique sobre o separador de segurança . Clique para seleccionar as caixas de verificação para a ACL permissões.
Também pode utilizar o script ou a ferramenta da linha de comandos do Cacls.exe (que é incluída no Windows) para alterar a ACL para um ficheiro.

O ASP.NET 1.1 utiliza o <DriveName> \Documents and Settings\ <MachineName> \ASPNET pasta para armazenar os ficheiros de processo (onde <DriveName> é a unidade no computador onde o ASP.NET é instalado e <MachineName> é o nome do computador).

Activar a representação

Com a representação, pode executar no contexto de segurança da entidade de pedido, como um utilizador autenticado ou como um utilizador anónimo. No ASP.NET, a representação é opcional e não está activada por predefinição. Para activar a representação ao nível do computador ou a aplicação, adicione a seguinte directiva configuração in a <system.web> secção de Machine.config ou o ficheiro Web.config:
<identity impersonate="true"/>
				

Utilizar bases de dados

Aplicações que utilizam a autenticação de SQL para ligar a uma base de dados normalmente não são afectadas pelo parâmetro para a conta ASPNET. Também é verdade para aplicações que utilizam a autenticação integrada e representação. No entanto, se uma aplicação não está a representar e utilizar o Windows autenticação, tem de conceder acesso a base de dados para o ASPNET conta.

Pode utilizar a conta ASPNET quando tenta autenticar Microsoft SQL Server utilizando a autenticação integrada do Windows através de pipes nomeados. No entanto, pode utilizar a conta ASPNET com êxito com a autenticação integrada do Windows através de TCP (Transmission Control Protocol) transporte.

Se uma aplicação tem de utilizar uma base de dados do Microsoft Access, a conta ASPNET tem de conseguir escrever no ficheiro de base de dados. Os administradores tem de ajustar as permissões de ficheiros em conformidade.

Utilizar o registo de eventos

Aplicações que devem escrever no registo de eventos de aplicações podem fazer durante a execução como a conta ASPNET. Se uma aplicação tem de criar uma nova categoria de registo de eventos, a aplicação tem de criar uma chave de registo no ramo de registo HKEY_LOCAL_MACHINE , a conta ASPNET não.

Para criar a categoria em tempo de execução, tem de activar representação e, em seguida, tem de representar uma conta que tenha mais direitos de acesso. Em alternativa, um administrador pode criar a categoria e a aplicação pode escrever a categoria em tempo de execução.

Se as aplicações tem de criar novas categorias de registo de eventos, crie as categorias durante a instalação. Depois de criada a categoria, pode escrever a conta ASPNET para registo de eventos de aplicações.

Utilização System.DirectoryServices e do Active Directory

Se um aplicativo da Web tem acesso do Active Directory, a aplicação pode utilizar representação num ambiente que suporta a delegação. Em alternativa, a aplicação pode fornecer credenciais explícitas do construtor de DirectoryEntry no espaço de nomes System.DirectoryServices aceder ao Active Directory. Se a aplicação utiliza credenciais explícitas, aplicações devem armazenar credenciais correctamente utilizando uma técnica como cadeias de construção do COM + ou utilizando o Windows dados protecção aplicação interfaces de programação (API).

Utilizando contadores de desempenho

A conta ASPNET tem permissão para escrever (mas não para leitura) dados do contador de desempenho. Se a aplicação deve ler dados do contador de desempenho ou criar categorias de contador de desempenho, são necessárias permissões de administrador ou utilizador avançado.

Se uma aplicação tem de criar desempenho novo categorias de contador, crie as categorias na instalação. Depois de criadas as categorias, pode escrever a conta ASPNET aos contadores.

Pode utilizar a ferramenta Monitor de desempenho (Perfmon.exe) para monitorizar o desempenho do ASP.NET contadores quando utiliza o ASPNET conta.

No Windows 2000, siga estes passos:
  1. Execute o Editor de registo.
  2. Localize a seguinte chave de registo:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ASP.NET_1.1.4322\Names
  3. Clique no separador Segurança.
  4. Adicione a identidade do processo de trabalho com as seguintes permissões:
    • Valor da consulta
    • Definir valor
    • Criar subchave
    • Enumerar subchaves
    • Notificar o controlo de leitura
No Windows Server 2003, adicione a identidade de IIS_WPG grupo.

Iniciar out-of-process COM servidores

As aplicações que tem de iniciar out-of-process COM servidores durante a execução como a conta ASPNET pode conceder especificamente iniciar permissões à conta utilizando a ferramenta DCOMCNFG.exe.

Problemas de depuração

Por predefinição, não é possível passo para uma chamada de serviço Web XML de uma aplicação cliente. Para o passo para XML Web services, terá de adicionar o ASPNET conta ao grupo utilizadores do depurador no computador onde está com XML Web service.

Execução de código com uma identidade fixa

Em serviços COM +, pode executar código com uma identidade fixa. Pode utilizar a classe de ServicedComponent do espaço de nomes de System.EnterpriseServices para escrever código gerido componentes que utilizam COM + serviços. Pode moldar funcionalidade privilegiada numa classe derivada de ServicedComponent e, em seguida, execute esta classe como uma aplicação de servidor do COM + com a identidade configurada.

Compilar o código subjacente ficheiros em partilhas UNC

No ASP.NET, pode utilizar vários métodos para criar ficheiros de aplicação:
  • Pode utilizar HTML (Hypertext Markup Language) num ficheiro .aspx e, em seguida, pode armazenar o código para a página numa assemblagem pré-compilada no directório bin. Este é o modelo de Microsoft Visual Studio. NET.
  • Pode compactar todos o código e o conteúdo HTML num ficheiro de origem único que é compilado no pedido.
  • Pode coloque a apresentação de HTML num ficheiro de ASP.NET e, em seguida, dinamicamente pode compilar qualquer código de origem associado para esse ficheiro utilizando um atributo src o < % @ Assemblagem % > directiva.
Nota Se o conteúdo de aplicação estiver localizado numa partilha de rede, o compilador é iniciado na conta ASPNET e não tem credenciais de rede para aceder ao ficheiro. Se utilizar partilhas de rede, pode utilizar o atributo src para apontar para um ficheiro. Tem de utilizar um dos outros métodos em vez disso.

Utilização do ASP.NET num principal ou um controlador de domínio de reserva


Por predefinição, se estiver a utilizar o ASP.NET 1.1 num controlador de domínio, as aplicações Web ASP.NET irão executado no contexto de segurança de IWAM_ <ComputerName> conta (onde <ComputerName> é o nome do computador).

Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
315158CORRECÇÃO: O ASP.NET não funciona com a conta ASPNET predefinida num controlador de domínio
back to the top

Ler a metabase do IIS

A conta ASPNET não consegue ler o Microsoft Internet Information metabase do IIS (serviços). Se uma aplicação tem acesso configurações da metabase, pode selectivamente conceder acesso de leitura para nós da metabase utilizando o Metaacl.exe utilitário.

Se uma aplicação tem de utilizar ficheiros .disco, que dependem da capacidade de ler a metabase do IIS para fornecer serviços de identificação, tem de conceder acesso de leitura à metabase para a conta ASPNET.

Utilizar System.Management e WMI

O WMI (Windows Management Instrumentation) é uma funcionalidade poderosa, administrativa que pode utilizar para gerir e monitorizar computadores baseados no Windows. No entanto, quando as aplicações do ASP.NET é executado sob a conta ASPNET, esta conta tem as mesmas permissões predefinidas de acesso como todos. Estas permissões incluem ler dados, escrever dados do fornecedor e executar métodos para fornecedores no computador local. Podem encontrar mais informações sobre os mecanismos de segurança WMI no Platform SDK WMI documentação ou na MSDN.

Nota No Windows 2000 sem service pack 3 (SP3) ou posterior, ou no Windows XP sem service pack 1 (SP1) ou posterior, a aplicações Web ASP.NET que execute na conta ASPNET poderão não funcionar e poderá receber um "acesso negado (0x80041003)" mensagem de erro. Isto ocorre porque a conta não tem privilégios suficientes para aceder a alguns espaços de nomes WMI. Para resolver este problema, instale o Windows XP SP1 ou posterior, ou Windows 2000 SP3 ou posterior. Para contornar o problema, siga estes passos:
  1. Abrir ao computador gestão mesma snap-in (MMC).
  2. Expanda Serviços e aplicações e, em seguida, seleccione o Controlo WMI .
  3. Clique com o botão direito do rato Controlo WMI e, em seguida, clique em Propriedades .
  4. Na caixa de diálogo Propriedades do controlo WMI , clique no separador segurança .
  5. Expanda raiz , seleccione CIMV2 e, em seguida, clique em segurança .
  6. Na caixa de diálogo segurança , clique em Avançadas .
  7. Na caixa de diálogo Definições de controlo de acesso , clique em Adicionar . Seleccione localMachineName \ASPNET e, em seguida, clique em OK .
  8. Na caixa de diálogo Permissões de entrada , certifique-se de que Aplicar em está definido para este espaço de nomes e subnamespaces .
  9. Certifique-se que estão seleccionadas as caixas de verificação Permitir ' Activar conta ' e Permitir que ' Activar remoto ' .
  10. Clique em OK em cada caixa de diálogo até regressar à caixa de diálogo Propriedades do controlo WMI .
  11. Repita os passos 5 a 10 para outros espaços de nomes WMI que acederá a aplicação.
  12. Reinicie o IIS. Para o fazer, execute IISRESET a partir da linha de comandos.
Por predefinição, o ASP.NET gera uma palavra-passe criptograficamente forte para a conta ASPNET. Por conseguinte, esta solução alternativa é segura, desde que a palavra-passe da conta ASPNET não é partilhado entre computadores ou repor um valor diferente da predefinida.

Interagir com o ambiente de trabalho

Quando serviços do IIS estão configurados para permitir a interacção com o ambiente de trabalho, a conta ASPNET não tem os direitos correctos para aceder ao ambiente de trabalho devido a discricionária Access listas de controlo (DACL) na estação de janela predefinido e o ambiente de trabalho. Os administradores podem alterar estas DACL ou pode executar o processo com uma conta que tenha permissão para aceder a estes objectos.

Remover o ASP.NET

Quando remove o ASP.NET, a conta ASPNET é desactivada e permanece no sistema. Pode eliminar a conta ASPNET se não pretender reinstalar o ASP.NET.

Se reinstalar o ASP.NET depois de eliminar explicitamente a conta ASPNET, é criada uma nova conta ASPNET que tem um novo identificador de segurança (SID, Security Identifier). Como resultado, as ACL referido a conta ASPNET anterior já não se aplica a nova conta ASPNET.

Utilizar o Windows Server 2003

O ASP.NET 1.1 utiliza o <DriveName> \Documents and Settings\ <MachineName> \ASPNET pasta para armazenar os ficheiros de processo. No entanto, no IIS 6.0 e o ASP.NET SP1, poderá ver estes ficheiros no <DriveName>: \Documents and Settings\Default User\Local locais\Application Data. O caminho parece ser uma alteração.

Nota <DriveName> é a unidade no computador onde o ASP.NET está instalado. <MachineName> é o nome do computador.

O perfil de utilizador predefinido é utilizado no Windows Server 2003. Neste caso, a identidade predefinida é serviço de rede. Pode configurar o serviço de rede a nível de agrupamento da aplicação. Serviço de rede tem permissões que são semelhantes do ASPNET conta. Windows Server utiliza apenas o ASPNET conta para o IIS 5.0 modo de isolamento. Se utilizar modo de isolamento do processo de trabalho, ASP.NET todos os aplicativos executados num processo de trabalho do IIS W3wp.exe.

Referências

Para obter mais informações sobre a predefinição Access listas de controlo no Windows 2000, consulte a seguinte documentação técnica da Microsoft:
http://technet.microsoft.com/en-us/library/bb742509.aspx
Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
329290Como utilizar o utilitário ASP.NET para encriptar as credenciais e cadeias de ligação do estado de sessão
315158CORRECÇÃO: O ASP.NET não funciona com a conta ASPNET predefinida num controlador de domínio

Propriedades

Artigo: 317012 - Última revisão: 22 de março de 2007 - Revisão: 12.7
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Palavras-chave: 
kbmt kbconfig kbhttpruntime kbinfo kbsecurity KB317012 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 317012

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