10
votes

Demande ASP classique.ServerVariables ("Logon_user") Renvoyer un mauvais nom d'utilisateur

Demande ASP classique.SerVariables ("Logon_User") renvoie un mauvais nom d'utilisateur. Voici le scénario:

J'ai deux comptes sur le domaine, un pour l'administration et une pour une utilisation normale. Le compte administrateur est défini comme administrateur (dans le groupe Administrateurs) sur le serveur où le script ASP fonctionne. Server est Windows 2003 exécutant IIS 6.0. P>

Je me connecte à ma machine avec mon compte d'utilisateur normal et accédez à la page et renvoie mon nom d'utilisateur de compte administrateur. Pourquoi cela arrive-t-il ? Cela fonctionne bien pour les autres. P>

<%
Response.Write "LOGON_USER: " & Request.ServerVariables("LOGON_USER") & "<br>"
Response.Write "REMOTE_USER: " & Request.ServerVariables("REMOTE_USER") & "<br>"
Response.Write "AUTH_USER: " & Request.ServerVariables("AUTH_USER") & "<br>"
Response.Write "<br>"
'Show all server variables
For Each Item In Request.ServerVariables
Response.Write Item & " = " & Request.ServerVariables(Item) & "<br>"
Next
%>


6 commentaires

Quel compte est le pool d'applications IIS fonctionnant sous?


Auth_User dis-t-il la même chose? L'accès anonyme est-il activé? Si oui, quel compte est configuré pour l'utilisateur anonyme?


Il fonctionne sous un compte système


LOGON_USER, AUTH_USER et REMOTE_USER renvoient le même utilisateur d'administrateur. Je ne suis pas non plus le seul que cela se passe.


L'accès anonyme est désactivé. L'authentification Windows est activée.


Avez-vous eu n'importe où avec ce @jari


4 Réponses :


0
votes

L'IIS fonctionne probablement sous l'utilisateur administrateur et vous obtenez donc ce nom. S'il vous plaît vérifier à vos côtés.


1 commentaires

Il fonctionne sous un compte système



1
votes

Selon les documents MSDN sur cette variable:

Le compte Windows sur lequel l'utilisateur est imminent lorsqu'il est connecté à votre serveur Web. Utilisez REMOTE_USER, MODAPÉT_REMOTE_USER ou AUTH_User pour afficher le nom d'utilisateur brut contenu dans l'en-tête de la demande. Le seul temps logon_user contient une valeur différente de ces autres variables, si vous avez un filtre d'authentification installé.

Peut-être que vous avez un filtre d'authentification.


1 commentaires

Si le filtre d'authentification signifie un filtre ISAPI, alors il n'y en a pas installé.



2
votes

Je ne peux pas expliquer ce que vous voyez sur la base des informations fournies jusqu'à présent. Je peux vous dire que le compte dans quel pool App est en cours d'exécution est irrelevent.

ASP classique toujours un utilisateur se fait passer soit le compte utilisateur anonyme ou l'utilisateur associé à la connexion à la demande arrive sur. Peut être l'y indice de votre problème.

Authentification dans ASP est traitée au niveau de la connexion, une fois qu'une connexion a été authentifié, il est associé à un utilisateur. Une connexion peut être maintenue ouverte par les clients et d'autres en aval des dispositifs HTTP. Toutes les demandes ultérieures qui arrivent sur la connexion ne sera pas nécessaire de ré-authentification, l'utilisateur actuel associé à la connexion est utilisée pour fournir le contexte utilisateur que le fil de traitement de demande les déguise.

J'ai vu des dispositifs intermedatory ou proxy de débogage (tels que Fiddler) entretiennent des liens et les réutiliser pour demande ultérieure d'une variété de clients. Dans cette situation, il est possible d'avoir un client en cours d'exécution dans un contexte utilisateur d'avoir une demande traitée par le serveur Web dans le contexte d'un autre utilisateur. Nasty!

Je l'ai vu le même genre de chose sur les serveurs Citrix Terminal anciens. les connexions HTTP ont été partagées par plusieurs clients en cours d'exécution sur le serveur de terminal résultant en croisé du contexte de sécurité. Aie!

Une autre variante de c'est là où l'accès d'une ressource sur un serveur est refusé pour l'utilisateur actuel sur l'intranet. Le navigateur affiche une boîte de dialogue d'ouverture de session Net et l'utilisateur entre un utilisateur Admin. Pendant la durée de la session, le navigateur utilise maintenant les informations d'identification d'ouverture de session utilisateur Admin pour accéder à d'autres ressources sur ce même serveur, même si l'utilisateur connecté ferait en cours.


0 commentaires

7
votes

Le problème sous-jacent est probablement le fait que j'ai $ partager ouverte sur le même serveur avec le nom d'utilisateur admin tout en disposant de sessions ASP sur le même serveur avec IE avec l'utilisateur normal.

Changer l'utilisateur Retour à la normale peut être effectué à partir de Panneau de configuration -> Comptes d'utilisateur -> Gérez vos mots de passe -> Sélectionnez le serveur en question et modifiez le nom d'utilisateur à la bonne. Pas besoin d'entrer un mot de passe. OK, fermer et annuler. Vous devrez peut-être ouvrir un nouveau IE pour le changement à prendre effet.

Ceci doit être fait à chaque fois que l'utilisateur change "derrière les scènes".


2 commentaires

Quelle version du serveur utilisez-vous comme cela ne correspond pas aux écrans que je vois et je souffre du même problème


Si vous avez coché "Mémoriser de moi" sur le mappage initial du lecteur réseau, même après la déconnexion, les informations d'identification sont stockées à cet endroit.