Fehler: Set-Cookie ist in CGI bei mit Pfad kombinierte ignoriert.

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 176113 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Es wird empfohlen, dass alle Benutzer zu Microsoft Internetinformationsdienste (IIS) 7.0 aktualisieren auf Microsoft Windows Server 2008 ausgeführt. IIS 7.0 erhöht deutlich Infrastruktur Websicherheit. Weitere Informationen zu sicherheitsrelevanten Themen im IIS der folgenden Microsoft-Website:
http://www.microsoft.com/technet/security/prodtech/IIS.mspx
Weitere Informationen zu IIS 7.0 die folgende Microsoft-Website:
http://www.iis.net/default.aspx?tabid=1
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Wenn eine CGI-Anwendung einen Set-Cookie-Header mit "302-Object Moved" Antwort und Location-Header sendet, ignoriert Internet-Server (IIS) den Cookieheader.

Lösung

Dieses Verhalten ist gegen die CGI-Spezifikation, welche Zustände, "alle Header, die Server-Direktiven nicht direkt an den Client zurückgesendet werden. Diese Spezifikation definiert derzeit drei Server Direktiven..."

Dieses Problem zu umgehen stellen Sie sicher der Namen der EXE-Datei beginnt mit"Nph" und alle Header im Programm manuell erstellt. "Nph-" gibt an den Server, dass das CGI-Programm ist im Header nicht analysiert-Modus ausgeführt werden. CGI verfügt über zwei Modi. Im normalen Modus (analysierten Header) müssen Sie eine der CGI-Direktiven in der Standardausgabe (Content-Type, Position oder Status) senden. CGI formatiert eine gültige HTTP-Antwort Position basierend auf der Direktive, die Sie gesendet. Andere standardmäßige HTTP-Header für Sie formatiert, und sollte enthalten andere Header, die Sie angegeben haben.

Der andere Modus ist nicht analysiert Kopfzeilenmodus. In diesem Modus fest CGI keine Header selbst. CGI-Programm muss eine vollständige HTTP-Antwort einschließlich der Antwortzeile und alle Header formatiert. Der Server wird nicht hinzufügen oder ändern alle Header für Sie in diesem Modus.

Die Konvention ist, dass ein CGI-Programm, dessen Name mit "Nph-" beginnt, im Header nicht analysiert-Modus ausgeführt wird; andernfalls CGI-Programme werden in analysierten Kopfzeilenmodus ausgeführt.

Status

Microsoft hat bestätigt, dass es sich dabei um einen Fehler in den Microsoft-Produkten handelt, die zu Beginn dieses Artikels aufgeführt sind.

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

Diese CGI-Programm wie eine Win32-Konsolenanwendung kompiliert und in einen Ordner auf dem IIS-Server, in dem es ausgeführt werden können:
#include <stdio.h>
int main()
{
  printf("Location: %s\r\n", "http://www.yahoo.com");
  printf("Set-Cookie: Name1=Value1; path=/;
    expires=Fri, 22 May 1998 21:00:00 GMT\r\n\r\n");
  return 0;
}
				

Rufen Sie CGI-Programm von Ihrem Browser, und beobachten Sie die Ausgabe (über den Netzwerkmonitor, z. B.). Ähnlich wie in diesem Beispiel werden:
HTTP/1.0 302 Object moved
Location: http://www.yahoo.com
Server: Microsoft-IIS/2.0
Content-Type: text/html
Content-Length: 145

<head><title>Document moved</title></head>
<body><h1>Object Moved</h1>This document may be found
<a HREF="http://www.yahoo.com">here</a></body>
				

Beachten Sie, dass die Set-Cookie-Header nicht von IIS gesendet wurde. Wenn Cookie-Warnungen in Ihrem Browser aktiviert ist, wird keine Warnung angezeigt.

Verwenden Sie Code vergleichbar mit den folgenden und Präfix "Nph-", um den Namen der ausführbaren Datei, um eine Cookies in einer 302 Antwort festgelegt werden:
#include <stdio.h>
int main()
{
  printf("HTTP/1.0 302 Redirect\r\n");
  printf("Location: %s\r\n", "http://www.yahoo.com");
  printf("Set-Cookie: Name=Value; path=/; expires=Fri, 22 May 1998 21:00:00
   GMT\r\n\r\n");
  return 0;
}
				

Die Ausgabe ist ähnlich der folgenden. Beachten Sie, dass das Cookie jetzt gesendet wird und keine Überschriften werden vom Server hinzugefügt.
HTTP/1.0 302 Redirect
Location: http://www.yahoo.com
Set-Cookie: Name=Value; path=/; expires=Fri, 22 May 1998 21:00:00 GMT
				

Informationsquellen

(c) 1997 Microsoft Corporation, alle Rechte vorbehalten. Beiträge von Leon Braginski, Microsoft Corporation

Eigenschaften

Artikel-ID: 176113 - Geändert am: Donnerstag, 3. Juli 2008 - Version: 5.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
Keywords: 
kbmt kbbug kbnofix KB176113 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 176113
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com