9
votes

Capturez Windows Nom d'utilisateur dans la demande ASP.NET MVC

J'ai un site Intranet App ASP.NET MVC. Y a-t-il de toute façon pour capturer la connexion Windows NT à partir de l'utilisateur wihtout ayant un système de connexion complet sur le site. Je ne veux pas perfectionner, mais je voudrais faire une journalisation sur le serveur pour suivre les demandes, etc. .


0 commentaires

7 Réponses :


0
votes

Si vous définissez IIS pour utiliser l'authentification Windows et que le site est dans la zone intranet pour vos clients, les connexions se produiront automatiquement sans aucune invite.


0 commentaires

1
votes

Quelle version de Windows est cette application MVC fonctionnant?

Vous pouvez essayer ce qui suit:

  • Utilisez IIS Manager pour désactiver l'accès anonyme sur le site et assurez-vous que Digest et / ou l'authentification Windows est activé.
  • Changer le web.config de l'application MVC pour utiliser l'authentification Windows
  • Accédez au nom de la connexion dans le contrôleur à l'aide de l'utilisateur.Identity.name.

    cela ferait-cela?


0 commentaires

14
votes

Vous pouvez utiliser httpcontext.current.user.entity.name Si vous configurez le site pour utiliser authentification Windows . De nombreux navigateurs passeront le nom d'utilisateur sur de manière transparente.


3 commentaires

Il semble avec Firefox, il incite un nom d'utilisateur / PWD, même si c'est-à-dire que c'est-à-dire que cela semble ne pas l'exiger. . des idées sur la raison pour laquelle cela est suscité


Firefox, par défaut, ne transmet pas le nom d'utilisateur. Cependant, il peut être fait au travail - voir markmonica.com / 2007/11/20 / ...


Ce n'est pas que c'est-à-dire que c'est pas l'exiger, c'est que c'est-à-dire, c'est-à-dire silencieusement dans les coulisses. Firefox, Chrome, Safari, etc. vous demanderont tous de saisir votre nom d'utilisateur et votre mot de passe de domaine. C'est juste comment c'est. La bonne chose est qu'au moins vous n'avez pas à coder un formulaire de connexion.



2
votes

aller sur le fichier web.config pour votre application (assurez-vous qu'il est le principal, pas le web.config sous vues), remarquez sur si vous voyez Il ajoutez ensuite des lignes comme ceci: xxx

Vous n'êtes pas obligé d'inclure la section , mais si vous souhaitez autoriser l'accès à certains groupes et les utilisateurs et nier tout le monde. Lorsque vous utilisez IE, les informations d'identification sont passées automatiquement. Vous pouvez le tester en imprimant le nom d'utilisateur à votre vue: xxx

Si vous ouvrez votre site à l'aide de Firefox ou de tout autre navigateur en plus, il vous incitera au nom d'utilisateur et au mot de passe. Parce que cela ne passe pas automatiquement le long des informations d'identification (bien que apparemment, vous puissiez obtenir Firefox de transmettre les informations d'identification, car Dan Diplo mentionne ci-dessus).

Si vous souhaitez transmettre ces informations d'identification sur un autre serveur, Comme un SQLServer, cela devient plus mal à la tête de mon expérience, car vous rencontrez un problème de double hop. La seule solution de contournement que je connaisse est d'héberger IIS et SQLServer sur le même serveur ou d'avoir un identifiant pour votre intranet afin que vous ayez le nom d'utilisateur et le mot de passe pour transmettre à SQLServer.


0 commentaires

0
votes

Vous pouvez essayer de chercher le nom de l'utilisateur avec la pièce de code suivante: xxx

utilisateur. / code> est automatiquement peuplé si vous utilisez une authentification (exemple: Cookie Basé, etc.)


0 commentaires

2
votes

Essayez ceci.

<identity impersonate="true"/> 


0 commentaires

0
votes
var MachineName = HttpContext.Server.MachineName;
var BrowserName = HttpContext.Request.Browser;
var Ip Address = HttpContext.UserHostAddress;
You can get information with these codes.

0 commentaires