- Самый простой способ установить заголовки для всего содержимого сайта -
web.config
. Раздел customHeaders
в httpProtocol
в system.webServer
обеспечит включение этого заголовка для всех файлов и ответов.
Пример:
<system.webServer>
<!--.......-->
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="DENY" />
<add name="X-XSS-Protection" value="1" />
</customHeaders>
</httpProtocol>
<!--.......-->
</system.webServer>
Другой вариант - создать пользовательский
HttpModule
. Таким образом, вы получите больше контроля над файлами и содержимым, к которому необходимо добавить заголовки.
Пример:
public class CustomOrgHeaderModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.PreSendRequestHeaders += OnPreSendRequestHeaders;
}
public void Dispose() { }
void OnPreSendRequestHeaders(object sender, EventArgs e)
{
//To add header only for Html files
//You can add any condition as you need
if (HttpContext.Current.Request.Url.ToString().Contains(".html"))//css, js as you need
{
HttpContext.Current.Response.Headers.Add("X-Frame-Options", "DENY");
HttpContext.Current.Response.Headers.Add("X-XSS-Protection", "1");
}
}
}
И зарегистрируйте CustomOrgHeaderModule
в web.config
-
<system.webServer>
<!--.......-->
<modules>
<add name="CustomHeaderModule" type="SOFTEST.NET.API.Modules.CustomOrgHeaderModule" /><!--.SOFTEST.NET.API.Modules.CustomOrgHeaderModule is then FullNmae of the class MEANS Namesapce.CassName -->
</modules>
<!--.......-->
</system.webServer>
И вам больше не нужно устанавливать Response.AddHeader
в Global.asax
.