Klassische ASP-Anforderung an.ServerVariables("LOGON_USER") Rückgabe falscher Benutzername
Classic ASP-Anforderung an.ServerVariables("LOGON_USER") ist Rückgabe falscher Benutzername. Hier ist das Szenario:
Ich habe zwei Konten auf die Domäne, einer für die Verwaltung und eine für den normalen Gebrauch.
Das admin-Konto ist als admin in die Gruppe der Administratoren) auf dem server, wo das ASP-Skript ausgeführt wird. Server ist Windows 2003 mit IIS 6.0.
Ich mich einloggen, um meine Maschine mit meinem normalen Benutzer-Konto und gehen Sie auf die Seite und es ist wieder in mein admin-Konto Benutzernamen. Warum ist das passiert ? Dies funktioniert gut für andere.
<%
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
%>
Anonyme Zugriff deaktiviert ist und die Windows-Authentifizierung auf.
Dank,
Jari
- Was Konto der IIS-Anwendungspool unter?
- Tut AUTH_USER sagen, die gleiche? Ist der anonyme Zugriff aktiviert? Wenn ja, welches Konto ist so konfiguriert, dass anonyme Benutzer?
- Es läuft unter dem System-Konto
- LOGON_USER, AUTH_USER und REMOTE_USER wieder den gleichen admin-Benutzer. Ich bin auch nicht der einzige, der das passiert.
- Anonymer Zugriff ist deaktiviert. Die Windows-Authentifizierung auf.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zugrunde liegende problem ist wohl die Tatsache, dass ich $ - Freigabe öffnen auf dem gleichen server mit dem Benutzernamen admin, während mit asp-Sitzungen auf dem gleichen server, die mit dem IE mit dem normalen user.
Ändern, Benutzer wieder zurück auf die normale getan werden kann, in der Systemsteuerung --> Benutzer-Konten --> Verwalten Sie Ihre Kennwörter - > Wählen Sie den server in Frage, und ändern Sie den user-Namen, die richtigen sind. Keine Notwendigkeit, Kennwort einzugeben. Ok, Schließen und Abbrechen. Müssen Sie möglicherweise öffnen Sie ein neues IE für die änderung wirksam wird.
Dies muß jedesmal gemacht werden, wenn der Benutzer änderungen 'hinter den kulissen'.
Ich kann nicht erklären, was Sie sehen, auf der Grundlage von Informationen, die bisher geliefert. Ich kann Ihnen sagen, dass das Konto, unter dem Anwendungspool ausgeführt wird, spielen keine Rolle.
Klassischen ASP-immer nimmt die Identität des Benutzers entweder das anonyme Benutzerkonto oder der Nutzer im Zusammenhang mit der Verbindung der Wunsch kommt auf. Darin kann der Schlüssel zu deinem problem.
Authentifizierung in ASP behandelt wird auf der Verbindungsebene ist, sobald eine Verbindung authentifiziert wurde, ist es einem Benutzer zugeordnet. Eine Verbindung offen gehalten werden, die von Kunden und anderen HTTP-Geräte im downstream. Alle nachfolgenden Anfragen ankommen, auf die Verbindung nicht müssen re-Authentifizierung des aktuellen Benutzers, die Verbindung zugeordnet ist, verwendet, um die Benutzer-Kontext, dass der thread, der die Anfrage verarbeitet imitiert.
Ich habe gesehen, intermedatory Geräte-oder debugging-Proxys (wie z.B. fiddler) verwalten von verbindungen und re-verwenden Sie Sie für die spätere Anforderung von einer Vielzahl von Kunden. In dieser situation kann ein client läuft in einem Benutzer-Kontext, um eine Anforderung verarbeitet der Web-server unter einem anderen user-Kontext. Böse!
Ich habe gesehen, die gleiche Art von Sache, auf älteren Citrix-Terminal-Servern. HTTP-verbindungen wurden gemeinsam von mehreren clients auf die terminal-server-was in cross-over von Sicherheits-Kontext. AUA!
Andere Variante dafür ist, wo Zugriff auf eine Ressource auf einem server abgelehnt wird für den aktuellen Benutzer auf das intranet. Der browser zeigt eine " Net logon-dialog und der Benutzer ein Admin-Benutzer. Für die Dauer der Sitzung wird der browser verwendet nun die Admin-Anmeldeinformationen für den Zugriff auf andere Ressourcen auf dem gleichen server, auch wenn der momentan angemeldete Benutzer tun würde.
Laut der MSDN-Dokumentation über diese variable:
Vielleicht haben Sie einen Authentifizierungs-filter.
Dem IIS läuft wahrscheinlich unter dem Admin-Benutzer, und so sind Sie immer, die Namen. Bitte überprüfen Sie diese auf Ihre Seite.