Question

J'ai une application ASP.NET qui enregistre des rapports d'audit à l'aide de IPReUpDateListener de NHiberNate. Afin de définir l'utilisateur actuel dans les événements de l'auditeur, j'utilisais System.Security.Principal.WindowIdentity.getCurrent (). Cela fonctionne bien lors du débogage sur ma machine, mais lorsque je le déplace vers le serveur de mise en scène, j'obtiens les informations d'identification du processus ASP.NET, pas l'utilisateur demandeur.

Dans la page ASP.NET, je peux utiliser request.logonuseRidentity (qui fonctionne bien car j'utilise l'authentification intégrée), mais comment faire référence directement à cet utilisateur sans avoir à le transmettre directement à mon événement? Je ne veux pas avoir à passer ces informations par le pipeline car il n'appartient vraiment pas aux événements / appels intermédiaires.

Était-ce utile?

La solution

Si le code s'exécute dans un contexte ASP.NET, HttpContext.Current (statique) contient le contexte HTTP actuel. Vous pouvez toujours tester si c'est nul ou non. Si ce n'est pas nul, vous pourrez obtenir HttpContext.Current.Request.

Cependant, l'identité qui réside dans ce contexte de demande dépend finalement de la façon dont le site Web (IIS, CASSINI, IIS Express ou Custom) gère l'identité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top