Chyba: Set-cookie je ignorované v CGI při kombinované s umístění

Překlady článku Překlady článku
ID článku: 176113 - Produkty, které se vztahují k tomuto článku.
Důrazně doporučujeme, aby všichni uživatelé upgradovat na Internetová informační služba (IIS) verze 7.0 se systémem Microsoft Windows Server 2008. Internetová informační služba 7.0 výrazně zvyšuje zabezpečení webové infrastruktury. Další informace o tématech souvisejících se zabezpečením služby IIS naleznete na následujícím webu společnosti Microsoft:
http://www.microsoft.com/technet/security/prodtech/IIS.mspx
Další informace o službě IIS 7.0 naleznete na následujícím webu společnosti Microsoft:
http://www.iis.net/default.aspx?tabid=1
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Aplikace CGI odešle hlavičku set-cookie s odpovědí "302 objekt Moved" a umístění záhlaví, ignoruje Internet Information Server (IIS) v záhlaví souboru cookie.

Řešení

Toto chování je v rozporu s specifikace rozhraní CGI, které státy "libovolný záhlaví, které nejsou direktivy serveru jsou odesílány přímo klientovi. V současné době tato specifikace definuje tři serveru směrnic..."

Napravíte ujistěte se, že název souboru EXE začíná písmenem "nph-" a ručně vytvořit všechny hlavičky protokolu HTTP v aplikaci. "nph-" znamená, že server, CGI program má být spuštěna v režimu bez analyzovat záhlaví. CGI má dva režimy. V normálním režimu (analyzovanou záhlaví) je nutné odeslat jednou ze směrnic CGI na standardní výstup (typ obsahu, umístění nebo stav). CGI formátuje platný řádek odezvy protokolu HTTP na základě směrnice, které jste odeslali. Jej můžete formátuje další standardní hlavičky protokolu HTTP a měl by obsahovat jiné záhlaví, které jste zadali.

Ostatní režim je režim bez analyzovat hlavičky. V tomto režimu CGI nenastavíte žádné záhlaví sám. CGI program musí formátovat úplnou odpověď HTTP včetně řádku odezvy a všechny hlavičky. Serveru nebudou přidat nebo změnit všechny hlavičky, můžete v tomto režimu.

Úmluvy je, že je program CGI, jejichž jméno začíná písmenem "nph-" spustit v režimu bez analyzovat záhlaví; jinak jsou programy CGI spustit v režimu analyzovanou záhlaví.

Prohlášení

Společnost Microsoft potvrzuje, že tuto změnu problém v produktech společnosti, které jsou uvedeny na začátku tohoto článku.

Další informace

Kroky pro reprodukci chování

Zkompilovat tento program CGI jako aplikace konzoly Win32 a umístěte jej ve složce na serveru IIS, kde lze provést:
#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;
}
				

CGI program volat z prohlížeče a sledovat jeho výstupu (prostřednictvím programu Sledování sítě, například). Bude podobná této:
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>
				

Všimněte si, že záhlaví cookie sada nebyla odeslána službou IIS. Pokud máte soubor cookie upozornění v prohlížeči povoleno, zobrazí se žádné upozornění.

Chcete-li povolit v 302 odpověď nastavit soubor cookie, použijte kód podobný následující a předpona „ nph-název spustitelného souboru:
#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;
}
				

Výstup je podobný následujícímu. Všimněte si, že je nyní odeslán soubor cookie a serverem jsou přidány žádné hlavičky.
HTTP/1.0 302 Redirect
Location: http://www.yahoo.com
Set-Cookie: Name=Value; path=/; expires=Fri, 22 May 1998 21:00:00 GMT
				

Odkazy

(c) 1997 Microsoft Corporation, všechna práva vyhrazena. Příspěvky pracuje Braginski, Microsoft Corporation

Vlastnosti

ID článku: 176113 - Poslední aktualizace: 3. července 2008 - Revize: 5.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
Klíčová slova: 
kbmt kbbug kbnofix KB176113 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:176113

Dejte nám zpětnou vazbu

 

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