Ero*_*ocM 6 c# asp.net-mvc http-headers razor
我不确定我想把它放在我的Asp.net MVC网站上:
HttpContext.Current.Response.AppendHeader("P3P", "CP=\\\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\"");
Run Code Online (Sandbox Code Playgroud)
我把它放在:
public static void RegisterRoutes(RouteCollection routes)
{
HttpContext.Current.Response.AppendHeader("P3P", "CP=\\\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\"");
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Account", action = "Logon", id = UrlParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
但我回来了
在这种情况下无法获得响应.
谁知道我想把它放在哪里?
vto*_*ola 37
你可以把它放在web.config中:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="P3P" value='CP="CAO PSA OUR"'/>
Run Code Online (Sandbox Code Playgroud)
这样您就不需要将它放在代码中.
有关具体方法的详细信息,请参阅此SO答案value.
假设你想在每个响应上都有这个标题,这样的事情就应该这样做
public class P3PHeaderAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
filterContext.HttpContext.Response.AppendHeader("P3P", "CP=\\\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\"");
}
}
Run Code Online (Sandbox Code Playgroud)
然后将过滤器添加到全局集合中
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new P3PHeaderAttribute());
}
Run Code Online (Sandbox Code Playgroud)