c# - 将 X-Frame-Options header 添加到 MVC 4 应用程序中的所有页面

标签 c# asp.net-mvc asp.net-mvc-4 http-headers x-frame-options

我正在尝试将 X-Frame-Options header (值设置为“DENY”)添加到我的 MVC 4 应用程序中。我环顾四周,似乎this是为所有页面添加的最干净的方式。

但是,当我添加此代码时,它不会构建。

OnResultExecuting 出错

"no suitable method found to override."

public class XframeOptions : ActionFilterAttribute
{
    public override void OnResultExecuting(
          System.Web.Mvc.ResultExecutingContext filterContext)
    {
        filterContext.HttpContext.Response.AddHeader(
            "X-Frame-Options", "DENY");
    }
}

如果这是最干净的方法,我该如何解决这个错误?在 MVC 4 应用程序中有更好的方法来处理这个问题吗?

最佳答案

如果每个页面都需要,则无需自定义 HttpModule 或 ActionFilter。 https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options详细介绍了一个更简单的解决方案:

要将 IIS 配置为发送 X-Frame-Options header ,请将此添加到您站点的 Web.config 文件中:

<system.webServer>
  <!-- ... -->

  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
  </httpProtocol>

  <!-- ... -->
</system.webServer>

关于c# - 将 X-Frame-Options header 添加到 MVC 4 应用程序中的所有页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16484293/

相关文章:

c# - .NET Native 优化破坏应用程序

c# - Wpf TextBlock 中的垂直文本

c# - 无效的 View 状态,Base-64 字符数组或字符串的无效长度

javascript - 无法在 WebBrowser 控件中使用 Console.Log()

c# - 在owin中间件中读取响应体

asp.net-mvc - asp.net mvc 未授权响应是空白页?

c# - 关于对正在验证的实体采取的操作的模型验证

c# - MVC4 共享模板

c# - 预定消息

c# - 连接尝试失败,因为连接方未正确响应