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集合中。