2010-01-19 6 views
0

J'ai rencontré un mur de briques avec un service Windows que j'ai écrit. Le service Windows est un serveur proxy pour Internet Explorer. J'utilise le proxy C# de Mentalis (http://www.mentalis.org/soft/projects/proxy/) avec quelques modifications mineures pour le faire fonctionner comme un service.Windows Service - Quel utilisateur appelle le service

IE peut se connecter à mon proxy et obtenir la page Web qu'il veut sans aucun problème, mais je voudrais savoir quel utilisateur Windows touche le proxy. WindowsIdentity.GetCurrent(). Name renvoie le compte sous lequel le service s'exécute (NT AUTHORITY \ SYSTEM).

Comment puis-je déterminer l'utilisateur qui fait la demande? Est-ce possible?

+0

le proxy s'exécute sur le même hôte que le navigateur? – lsalamon

+0

La plupart du temps, le proxy s'exécute localement (écoute sur 127.0.0.1) mais il est possible de l'installer sur une boîte séparée en tant que serveur proxy dédié pour de nombreuses machines. – modernzombie

Répondre

3

Vous devez implémenter l'authentification avec votre serveur proxy afin de déterminer l'utilisateur. Sinon, la réponse courte est non, ce n'est pas possible.

+0

Exactement. Votre navigateur envoie uniquement des informations d'authentification si le serveur le demande et la plupart ne le font pas –

+0

Je suis très nouveau dans la programmation réseau. Le proxy Mentalis utilise Sockets pour créer et gérer les requêtes. Pourrait me donner une idée par où commencer à demander l'authentification du navigateur? Si IE transmet uniquement la requête à l'IP et au port dans les paramètres de proxy, comment sait-il si l'authentification est requise par mon code? – modernzombie

+0

@modernzombie: Un navigateur saura qu'il doit s'authentifier auprès d'un proxy lorsqu'il recevra le code d'état "407 Proxy Authentication Required" du proxy. Mais puisqu'il y a un sondage sur le site Web de Mentalis intitulé "Que voudriez-vous voir ajouté au serveur proxy?" et l'une des réponses est "fonctions d'authentification" Je suppose que le proxy Mentalis ne supporte pas l'authentification. –

2

Je ne pense pas que vous le pouvez. Le serveur proxy est juste un serveur TCP; Il n'y a rien à propos de l'identité transmise dans le cadre de ces demandes.

Questions connexes