Ciao a tutti.
è possibile rilevare nome utente active directory in asp.net con c#?
il vecchio Request.ServerVariables("LOGON_USER") che usavo con ASP non funziona ....
Grazie.
Ciao a tutti.
è possibile rilevare nome utente active directory in asp.net con c#?
il vecchio Request.ServerVariables("LOGON_USER") che usavo con ASP non funziona ....
Grazie.
E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.
Spostato in ASP.NET.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Ciao, se usi l'autenticazione di windows lo trovi sotto User (della Page), in particolare il nome lo ricavi da : User.Identity.Name.Originariamente inviato da yro
Ciao a tutti.
è possibile rilevare nome utente active directory in asp.net con c#?
il vecchio Request.ServerVariables("LOGON_USER") che usavo con ASP non funziona ....
Grazie.
Io uso questo (Windows Autentication):
C#
codice:string NomeUtente = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
autenticazione di windows o no, l'utente della macchina che sta effettaundo la richiesta, deve esserci comunque.
Quello che dice djciko va benissimo
Ma non mi torna che tu non riesca a leggerlo nella vecchia maniera.
Allora fai questo:
nelle direttive della pagina aggiungi Trace="true" (temporaneo)
Richiama la pagina dal browser e vedrai che in coda ci sono tutte le informazioni utilissime.
In fondo trovi tra le variabili del server la "LOGON_USER"
a me
Request.ServerVariables["LOGON_USER"].ToString();
funziona (nota le parentesi quadre però)
ciao
________________________________
http://glucolo.wordpress.com
http://www.liveperson.com/glauco-cucchiar/
ciao, non esattamente, è in base all'autorizzazione:Originariamente inviato da Gluck74
autenticazione di windows o no, l'utente della macchina che sta effettaundo la richiesta, deve esserci comunque.
Quello che dice djciko va benissimo
Ma non mi torna che tu non riesca a leggerlo nella vecchia maniera.
Allora fai questo:
nelle direttive della pagina aggiungi Trace="true" (temporaneo)
Richiama la pagina dal browser e vedrai che in coda ci sono tutte le informazioni utilissime.
In fondo trovi tra le variabili del server la "LOGON_USER"
a me
Request.ServerVariables["LOGON_USER"].ToString();
funziona (nota le parentesi quadre però)
ciao
microsoft
se non ti autentifichi con windows, non credo possa ottenere l'utente active directry.
@djciko
c'è differenza tra le due?
so che restituiscono la stessa cosa, ma mi chiedevo come mai due modi per la stessa cosa, c'è qualche differenza che tu sappia?
Sono quasi certo che se l'utente non è autenticato, la classe User non puo' essere usata perche' l'utente non è ancora "nato".
Nel Global.asax, metodo Application_AuthenticateRequest:
VB:
@yro:codice:If Context.Request.IsAuthenticated Then ' Operazioni varie Else Response.Write(HttpContext.Current.User.Identity.Name) <--- NullReferenceException End If
Come ha detto Gluck, abilita il trace e guarda tutte le Servariables, c'e' quella che fa al caso tuo di sicuro.
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
grazieOriginariamente inviato da djciko
Sono quasi certo che se l'utente non è autenticato, la classe User non puo' essere usata perche' l'utente non è ancora "nato".
Nel Global.asax, metodo Application_AuthenticateRequest:
VB:
@yro:codice:If Context.Request.IsAuthenticated Then ' Operazioni varie Else Response.Write(HttpContext.Current.User.Identity.Name) <--- NullReferenceException End If
Come ha detto Gluck, abilita il trace e guarda tutte le Servariables, c'e' quella che fa al caso tuo di sicuro.
stavo leggendo qualcosa a riguardo, da quello che ho capito, System.Security.Principal.WindowsIdentity.GetCurre nt() restitusce l'identità rappresentata da iis per eseguire il processo (es IUSR_MACHINENAME o NETWORK SERVICE), o in caso usi inpersonate, l'utente impersonato.
microsoft
comunque per le servervariables deve essere logato, se no non trova nulla, e nel caso faccia login, per sapere l'utente in active directory deve usare aut. windows![]()
si, scusate, non sono stato molto preciso.
Il fatto è che il server di sviluppo di VisualStudio, funziona in modo tale che il "LOGON_USER" è sempre valorizzato.
Mentre normalmente bisogna abilitare l'autenticazione windows su IIS
(vedi figura)
________________________________
http://glucolo.wordpress.com
http://www.liveperson.com/glauco-cucchiar/
Gluck, ho un problema di pubblicazione ed ho provato cio' che dici, abilitando il trace per vedere le variabili ed abilitando l'autenticazione WINDOWS da IIS per l'applicativo E PER LA ROOT. (o basta solo l'applicativo?).
Perche' continua a darmi NT AUTHORITY\NETWORK SERVICE invece del nome utente della macchina client che si è connessa ?
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/