8

Asp.netMVCWebサイトのどこにこれを配置するのかわかりません。

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

}

しかし、私は戻ってきます

このコンテキストでは応答は利用できません。

私がこれをどこに置くべきか誰か知っていますか?

4

3 に答える 3

38

あなたはそれをweb.configに置くことができます:

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

このように、コードに入れる必要はありません。

意味の詳細については、このSOの回答を参照してくださいvalue

于 2012-12-20T15:52:01.940 に答える
9

すべての応答でこのヘッダーが必要だとすると、このようなもので実行できます

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());
    }
于 2012-12-20T15:55:24.913 に答える
1

そのヘッダーを追加するには、継承ActionFilterおよびオーバーライドするクラスを作成する必要があります。OnResultExecuting()

次に、それをグローバルフィルターコレクションに追加します。

于 2012-12-20T15:51:44.493 に答える