web-dev-qa-db-fra.com

Obtenir les informations d'identification réseau de l'utilisateur actuel dans l'application d'authentification Windows

Je me demandais s'il était possible d'obtenir l'objet utilisateur actuel et d'obtenir leurs informations d'identification afin de pouvoir les transmettre à un objet NetworkCredential que j'utilise pour me connecter à mon AX .NET Business Connector. Comme, pour le moment, je dois spécifier qu'il se connecte en tant qu'utilisateur spécifique que je définis lorsque j'instancie un objet NetworkCredential:

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

J'espérais faire quelque chose comme: private NetworkCredential nc = (NetworkCredential)HttpContext.User; mais évidemment cela ne fonctionnera pas ...

De cette façon, il est plus facile de suivre l'utilisateur qui a créé une commande client par exemple, car au moment où tout est créé par l'utilisateur que j'ai spécifié.

14
CallumVass

CredentialCache.DefaultNetworkCredentials ?

Les informations d'identification renvoyées par DefaultNetworkCredentials représentent les informations d'authentification pour le contexte de sécurité actuel dans lequel l'application s'exécute. Pour une application côté client, il s'agit généralement des informations d'identification Windows (nom d'utilisateur, mot de passe et domaine) de l'utilisateur exécutant l'application.

28

Je ne comprends pas parfaitement votre question, mais votre appel provient-il d'ASP.NET que vous avez besoin des informations d'identification? Vous pouvez essayer:

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

En supposant que votre utilisateur s'est déjà authentifié via un fournisseur d'adhésion.

5
Jaime Torres