P3P的头信息中的MVC(P3P Header Info in MVC)

2019-07-17 11:16发布

我不知道在哪里,我假设把这个在我的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 }
  );

}

但是我回来

没有获得响应在这种情况下。

任何人都知道我在哪里假设把这个?

Answer 1:

你可以把它在web.config中:

  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="P3P" value='CP="CAO PSA OUR"'/>

这样,您就不必把它的代码。

请参见本SO回答有关哪些细节value表示。



Answer 2:

假设你想在每一个响应这个头,这样的事情应该这样做

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

    }
}

然后将过滤器添加到全球征集

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


Answer 3:

你应该创建一个继承的类ActionFilter并覆盖OnResultExecuting()来添加标题。

然后,将其添加到全局过滤器收集。



文章来源: P3P Header Info in MVC