2012-07-10 9 views
13

Mi chiedevo se fosse possibile ottenere l'oggetto utente corrente e ottenere le credenziali in modo che io possa passarle a un oggetto NetworkCredential che sto usando per connettermi al mio AX .NET Business Connector. Come, in questo momento sto avendo a specificarlo connettere come un utente specifico che ho impostato quando un'istanza di un oggetto NetworkCredential:Ottieni credenziali di rete dall'utente corrente nell'applicazione di autenticazione di Windows

private NetworkCredential nc = new NetworkCredential("myUser", "myPassword", "myDomain");

speravo di fare qualcosa di simile: private NetworkCredential nc = (NetworkCredential)HttpContext.User; ma ovviamente che ha vinto' t lavoro ...

in questo modo, è più facile per tenere traccia di quale utente ha creato un ordine di vendita, ad esempio, come in questo momento tutto ciò che viene creato dall'utente ho specificato ..

risposta

23

CredentialCache.DefaultNetworkCredentials?

Le credenziali restituite da DefaultNetworkCredentials rappresentano le credenziali di autenticazione per il contesto di sicurezza corrente in cui è in esecuzione l'applicazione. Per un'applicazione lato client, si tratta in genere delle credenziali di Windows (nome utente, password e dominio) dell'utente che esegue l'applicazione.

+2

Quando l'ho usato, le credenziali sono tutte stringhe vuote? – CallumVass

+1

Restituisce un 'SystemNetworkCredential', una classe interna che deriva da' NetworkCredential'. Dentro c'è una magia nascosta, ma imposta deliberatamente il nome utente, la password, ecc. Come stringhe vuote, se è quello a cui ti riferisci. –

+0

Ahh ok, ci provo allora .. grazie mille – CallumVass

4

I don' t comprendere appieno la tua domanda, ma la tua chiamata proviene da ASP.NET che richiedi e le credenziali? Potresti provare:

Uri uri = new Uri("http://tempuri.org/"); 
ICredentials credentials = CredentialCache.DefaultCredentials; 
NetworkCredential credential = credentials.GetCredential(uri, "Basic"); 

Supponendo che l'utente sia già autenticato tramite un provider di appartenenze.

+3

Sto utilizzando un'applicazione di autenticazione di Windows ASP.NET MVC 3, quindi presumo siano stati autenticati? Quando guardo 'credenziale' tutti i campi sono stringhe vuote? – CallumVass