2017-02-10 2 views
0

An welchem ​​Punkt des Seitenlebenszyklus werden customHeaders in der Datei web.config der Seite hinzugefügt? Eine MSN-Referenz zeigte, dass Header zu der Antwort hinzugefügt wurden, bevor die Anforderung an den Seitenhandler überging. Warum werden keine Header gelöscht, da ich sehe, dass Header an 2 Stellen gelöscht werden?ASP.NET/IIS, Wann werden <customHeaders> in der Datei web.config zur Seite hinzugefügt?

Ich kann in einer unserer Seite Vorlagen Code hinter in der OnInit Überschreibung sehen: Response.ClearHeaders(); Response.AppendHeader("Cache-Control", "no-store");

Die Header in der web.config

<customHeaders> 
    <clear /> 
    <add name="X-XSS-Protection"...etc 

Die gerenderten Seite Response-Header haben sowohl „Cache-Control "und" X-XSS-Protection "sowie andere. Da .NET code und web.config beide die Header löschen, würde ich erwarten, dass einer den anderen löscht, aber das passiert nicht.

Dies ist in IIS 7.5 im klassischen Modus, wenn das einen Unterschied macht.

Antwort

1

Benutzerdefinierte Header werden im Rahmen der Nachbearbeitung hinzugefügt, wenn ASP.NET die Antwort generiert. Daher kann Ihr ASP.NET-Code die benutzerdefinierten Header, die in web.config definiert sind, nicht entfernen.

Das Element clear löscht die Konfiguration des benutzerdefinierten Headerelements - es löscht die Header nicht von der Antwort selbst. Dies ist eine Möglichkeit zum Zurücksetzen der Konfiguration, wenn Sie Konfigurationswerte geerbt haben (z. B. wenn sich in der Datei machine.config ein benutzerdefiniertes Header-Element befindet und Sie es auf der Site-Ebene überschreiben möchten).

Verwandte Themen