2012-04-09 13 views
2

Wir haben eine PHP-Site von einem Apache-Server gehostet.Zugriff auf lokale Intranetseite für nur 1 Benutzer verweigert

Wir haben eine .NET-Site von einem Windows-Server gehostet.

Beide sind intern und innerhalb unserer Domäne.

Wenn ein Benutzer auf die PHP-Site zugreift, prüft er, ob Ihr Benutzername eingegeben wurde. Wenn nicht, macht es einen Ajax GET Postback auf die .NET "GetUsername.aspx" Seite. Die GetUsername.aspx Seite gibt einfach Request.ServerVariables("LOGON_USER") aus

Die .NET-Site erfordert Windows-Authentifizierung in IE aktiviert werden. Alle unsere Benutzer benutzen IE8.

Damit unsere PHP-Site Daten von der .NET-Site anfordern kann, muss eine Einstellung "Auf domänenübergreifende Daten zugreifen" aktiviert sein ... und es ist.

Damit unsere .NET-Site Ihren Benutzernamen erhält, muss "Enable Integrated Windows Authentication" aktiviert sein ... und es ist.

Sowohl die .NET-Site als auch die PHP-Site sind Intranetsites. Wenn Sie zu Internetoptionen -> Lokales Intranet -> Sites -> Erweitert gehen, befinden sich beide Sites in der Liste.

An dieser Linie: xmlhttp.open("GET","http://intranet.MySite.vmv/IS/GetUsername.aspx",false);

ein JavaScript-Fehler occurrs mit der Meldung "Fehler: Zugriff verweigert wird."

Wenn ich dieselbe .NET-Seite in die URL des Browsers eintippe ... lädt sie einfach und zeigt ihren Benutzernamen an.

Das Verwirrende an all dem ist, dass unsere Richtlinienaktualisierungen (bei jedem Login ausgeschoben) alle diese Einstellungen setzen. Ich habe überprüft, dass alle oben genannten Einstellungen in meinem Browser die gleichen sind wie bei diesen Benutzern. Wir sind beide in derselben Domäne.

Irgendwelche Ideen von einer anderen Einstellung, die dies verursachen könnte?

Danke!


EDIT

hier die Ergebnisse von Firebug sind ... scheint nicht sehr hilfreich zu sein, zeigt mir genau das, was wir schon kannten.

http://intranet.MyCompany.vmv/IS/GetUsername.aspx

401 Unauthorized 
20ms  
login (line 103) 
HeadersResponseHTML 
Response Headers 
Content-Length 1656 
Content-Type text/html 
Date Mon, 09 Apr 2012 16:15:33 GMT 
Server Microsoft-IIS/6.0 
WWW-Authenticate Negotiate NTLM 
X-Powered-By ASP.NET 
Request Headers 
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Accept-Encoding gzip, deflate 
Accept-Language en-us,en;q=0.5 
Connection keep-alive 
Host intranet.MyCompany.vmv 
Origin http://192.168.1.2:10078 
Referer http://192.168.1.2:10078/login 
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1 
+1

Können Sie mit Fiddle oder FireBug den tatsächlichen Netzwerkanruf anzeigen? – kevingreen

+1

Sie verwenden den Internet Explorer, oder? – jrummell

+1

Der Fehler liegt darin, dass der Browser keinen domänenübergreifenden Zugriff zulässt. Die Einstellung, die Sie für den domänenübergreifenden Zugriff festlegen, funktioniert auf diesem Computer nicht. – AndrewR

Antwort

1

Nun ... scheint das Problem mit IE7 zu sein. Irgendwie wurde die Version dieses Benutzers nicht mit allen anderen aktualisiert. Sobald wir sie auf IE8 aufgerüstet hatten, funktionierte es wie erwartet.

Verwandte Themen