2010-09-17 23 views
6

ho sempre letto che l'utente che ha impostato nel sito Web IIS/directory virtuale è l'utente che esegue l'app (identità utente anonima)quale utente esegue il mio utente asp.net?

Ma nel pool di applicazioni, posso anche impostare un utente (modello di processo , identità)

qual è la differenza tra i due e quale sarà necessario accedere se faccio un file letto?

EDIT:

la bontà è per questo quesyion 'ma se io uso 'autenticazione anonima', è l'utente ho scelto nel 'identità utente anonimo' mai usato? - "pubblicato come commento

risposta

2

Pensare all'identità del sito Web che definisce chi può accedere al sito. Se si specifica un account anonimo da utilizzare, tale account deve avere accesso al sito. Se l'accesso anonimo è disabilitato, le credenziali dell'utente devono avere accesso alla cartella.

L'identità del pool di app definisce cosa può fare l'applicazione. Il processo di lavoro del pool di app verrà eseguito utilizzando l'identità del pool di app; a tale account deve essere concesso l'accesso a qualsiasi risorsa (SQL Server, condivisioni di file, ecc.) a cui l'app dovrà accedere.

Per rispondere alla tua domanda: sì, l'account anonimo viene utilizzato. Pensa allo scenario in cui stai ospitando un centinaio di siti web e non vuoi che i file di un cliente siano in grado di accedere a quelli di altri. Assegnare un accesso anonimo separato a ciascun cliente.L'account anonimo di ciascun sito consente a IIS di accedere solo ai file relativi a quel particolare sito (a condizione che tu abbia configurato correttamente l'accesso di tale account).

4

Checkout this post. Citazione:

I due conti sono cose diverse. Pensa all'identità del sito web che rappresenta l'utente del sito. Se si crea un nuovo sito Web questo account è l'account IIS anonimo. Se si disattiva "Autenticazione anonima", gli utenti dovranno autenticarsi contro il sito web (in un dominio/sito di Windows intranet questo potrebbe essere implicite utilizzando la rete credenziali.)

L'identità del pool di applicazioni è l'account di Windows necessario per l'esecuzione degli assembly . Normalmente è l'account "Servizio di rete" che è un account con privilegi minimi con diritti utente e autorizzazioni limitati . Lo stato ha credenziali di rete. Ciò significa che è possibile utilizzare per autenticare contro le risorse di rete in un dominio. È inoltre possibile utilizzarlo per accedere a un database SQL con sicurezza integrata .

Ad esempio, se l'applicazione ASP.NET deve scrivere in una cartella, si deve concedere l'autorizzazione per del pool di applicazioni, non il conto sul sito. Per ulteriori informazioni su identità, leggi qui.

+0

Grande! Ancora una domanda: quando viene utilizzato l'utente del sito web? La citazione indica l'identità del pool di applicazioni utilizzata per l'accesso ai file e il server SQL, ma quando viene utilizzato l'utente del sito Web per l'autenticazione? – Michel

+0

@ Michel, consideralo come il meccanismo che decidi di utilizzare per autenticare gli utenti. Se lasci l'autenticazione anonima, chiunque può accedere al tuo sito, se abiliti l'autenticazione di base un utente dovrà fornire le credenziali per accedere al sito. –

+0

ma se uso "autenticazione anonima", l'utente che ho scelto in "identità utente anonima" è mai stato utilizzato? – Michel

0

@Michel

se si dispone di una configurazione Anon account di accesso sul vostro sito (dir virtuale)

e si dispone

<system.web> 
    <identity impersonate="true" /> 
</system.web> 

nel web.config, questo userà che l'identità .

se si dispone di una parte del codice in cui è possibile impostare le credenziali

CredentialCache.DefaultCredentials

questo punterà al conto Anon, se si desidera verificare quale utente si utilizza provare

Thread.CurrentPrincipal.Identity.Name.ToString() 

un'occhiata a questo post per ulteriori informazioni
http://blogs.iis.net/sakyad/archive/2008/11/19/process-and-thread-identity-in-asp-net-a-practical-approach.aspx

Problemi correlati