2009-03-03 20 views
9

Sto tentando di distribuire un'applicazione in una rete client, con controller di dominio/AD.Autenticazione Windows richiede nome utente/password

La mia applicazione è una semplice applicazione di asp.net C#, che utilizza l'autenticazione di Windows.

Sto usando win2003.

Fondamentalmente, utilizzando VS2008, creare un nuovo sito Web, ospitato su IIS6.0. Solo 2 modifiche. 1. Su IIS Directory security per l'applicazione, abilitata "Integrated Security".
Nota: anche l'anonimo è abilitato.

Solo una modifica al codice dello scheletro generato. Aggiungere di seguito al metodo Page_Load di default.aspx

using System.Security.Principal; 
... 
protected void Page_Load(object sender, EventArgs e) 
{ 
    WindowsIdentity id = WindowsIdentity.GetCurrent(); 
    Response.Write("<B>Windows Identity Check</B><br>"); 
    Response.Write("Name: " + id.Name + "<br>"); 
    Response.Write("<BR>"); 
    Response.Write("User.Identity: " + User.Identity.Name); 
    Response.Write("<BR>"); 
} 

uscita della navigazione alla pagina: Windows Identity Check- Nome: NT AUTHORITY \ SERVIZIO DI RETE User.Identity:

User.Identity.Name non restituisce il nome utente corrente.

Come discusso in questo articolo http://weblogs.asp.net/scottgu/archive/2006/07/12/Recipe_3A00_-Enabling-Windows-Authentication-within-an-Intranet-ASP.NET-Web-application.aspx

ho aggiunto:

<authorization> 
    <deny users="?"/> 
</authorization> 

Da quello che ho userstand è che, quando questo si aggiunge, posso ottenere gli utenti correnti, nome utente da User.Identity.Name .

Tuttavia, dopo aver aggiunto quanto sopra, il browser ora richiede un nome utente e una password. Una volta entrato, sono in grado di utilizzare User.Identity.Name per ottenere il nome utente. Tuttavia, non voglio che compaia il nome utente/password. Voglio che l'applicazione autentifichi l'utente in base alle sue credenziali di rete.

Mi manca qualcosa?

+0

Quale browser hai test con? Solo IE passerà l'autenticazione nome utente/password di Windows. –

+1

Questo non è necessariamente vero: FireFox supporta l'autenticazione integrata di Windows. –

+0

Sì, Firefox non ha alcun problema con questo semplicemente non considera gli hostname locali come zone di fiducia/intranet come default come IE - ma sicuramente può essere configurato per. C'è persino un modello ADM esistente da qualche parte per FF, penso che gli amministratori di sistema pigri possano usarlo. –

risposta

0

Quale URL utilizza il tuo sito e qual è la zona IE? Se l'app è in esecuzione al di fuori dell'area di LocalIntranet, l'autenticazione passthrough viene bloccata, richiedendo sempre Utente/Password.

+0

Sto ancora tentando di accedervi localmente, usando http: // localhost/site. Invia suggerimenti a tutti, IE, Firefox e Chrome – minalg

+0

È possibile aggiungere i registri IIS pertinenti alla domanda, cercando la serie 401/200 di voci di registro. Inoltre, puoi provare http://127.0.0.1/site e vedere se ti viene richiesto? –

0

È selezionato "Abilita autenticazione integrata di Windows" nelle Opzioni Internet di IE?

Sia IUSR_ sia il nome utente che si sta inserendo dispongono delle autorizzazioni di lettura ed esecuzione per la directory in cui è ospitata l'applicazione?

La directory dell'applicazione risiede sul server IIS o si trova su una condivisione, dove le autorizzazioni di condivisione di Windows entrano in gioco?

3

Verificare che Internet Explorer sappia che il sito fa parte dell'area Intranet locale. Inoltre, nelle impostazioni per la zona Intranet verificare che l'accesso automatico sia abilitato.

3

La tua configurazione in IIS non è corretta: disattiva l'accesso anonimo, quindi l'autenticazione integrata si avvierà, presupponendo che sia stata impostata anche sul Web.config via

<configuration> 
    <system.web> 
     <authentication mode="Windows" /> 
    </system.web> 
</configuration> 
0

Penso che non si può controllare dal server app, è funzione del browser per passare le credenziali, in IE si può consigliare agli utenti di controllo "Attiva l'autenticazione integrata di Windows" in Opzioni Internet> Avanzate

0

Non si desidera modificare alcuna configurazione nel file we.config. In IS server manager nell'autenticazione del sito, abilitare solo l'autenticazione di Windows e disabilitare altre autenticazioni. enter image description here

L'autenticazione di Windows richiede le credenziali = windows per autenticare l'utente. Questa è la ragione per richiedere il login. Per evitare che sia necessario impostare l'IP del tuo sito o il tuo dominio come sito intranet attendibile nel tuo browser client. Per quello;

1) Andare a Impostazioni del browser -> impostazioni proxy aperti -> Sicurezza -> Intranet locale -> Siti -> Avanzate

2) Quindi aggiungere il dominio del sito o l'indirizzo IP enter image description here

ora vedere se il tuo problema è ok dopo aver svuotato la cache del browser.

Questo lavoro per me. :)

0

Non si desidera modificare alcuna configurazione nel file we.config. In IS server manager nell'autenticazione del sito, abilitare solo l'autenticazione di Windows e disabilitare altre autenticazioni. enter image description here

L'autenticazione di Windows richiede le credenziali = windows per autenticare l'utente. Questa è la ragione per richiedere il login. Per evitare che sia necessario impostare l'IP del tuo sito o il tuo dominio come sito intranet attendibile nel tuo browser client. Per quello;

1) Andare a Impostazioni del browser -> impostazioni proxy aperti -> Sicurezza -> Intranet locale -> Siti -> Avanzate

2) Quindi aggiungere il dominio del sito o l'indirizzo IP enter image description here

ora vedere se il tuo problema è ok dopo aver svuotato la cache del browser.

Questo lavoro per me. :)

controllare anche questo Receiving login prompt using integrated windows authentication

+0

Non pubblicare la stessa risposta più volte. – Sunil

Problemi correlati