MVC中的P3P标题信息

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.


Jus*_*vey 8

假设你想在每个响应上都有这个标题,这样的事情就应该这样做

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)