MVC中的P3P标题信息

我不确定我想把它放在我的Asp.net MVC网站上:

HttpContext.Current.Response.AppendHeader("P3P", "CP=\\\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\""); 

我把它放在:

 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 } ); } 

但我回来了

在这种情况下无法获得响应。

谁知道我想把它放在哪里?

你可以把它放在web.config中:

      

这样您就不需要将它放在代码中。

有关该 value含义的详细信息,请参阅此SO答案 。

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

 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\\\""); } } 

然后将filter添加到全局集合中

  public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new P3PHeaderAttribute()); } 

您应该创建一个inheritanceActionFilter的类,并重写OnResultExecuting()以添加该标头。

然后,将其添加到全局filter集合中。