OWIN 上的 Application_PreSendRequestHeaders()

2023-12-09

我有一个不使用 OWIN 中间件的应用程序,并且具有以下内容Global.asax:

public class MvcApplication : HttpApplication
{
     protected void Application_Start()
     {
         //...
     }

     protected void Application_PreSendRequestHeaders()
     {
         Response.Headers.Remove("Server");
     }
}

这删除了Server每次应用程序发送响应时的标头。

如何对使用 OWIN 的应用程序执行相同操作?

public class Startup
{
     public void Configuration(IAppBuilder application)
     {
          //...
     }

     //What method do I need to create here?
}

您可以创建自己的作品中间件并将其直接注入管道:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.Use(async (context, next) =>
        {
            string[] headersToRemove = { "Server" };
            foreach (var header in headersToRemove)
            {
                if (context.Response.Headers.ContainsKey(header))
                {
                    context.Response.Headers.Remove(header);
                }
            }
            await next(); 
        });
    }
}

或自定义中间件:

using Microsoft.Owin;
using System.Threading.Tasks;

public class SniffMiddleware : OwinMiddleware
{
    public SniffMiddleware(OwinMiddleware next): base(next)
    {

    }

    public async override Task Invoke(IOwinContext context)
    {
        string[] headersToRemove = { "Server" };
        foreach (var header in headersToRemove)
        {
            if (context.Response.Headers.ContainsKey(header))
            {
                context.Response.Headers.Remove(header);
            }
        }

        await Next.Invoke(context);
    }
}

您可以通过以下方式将其注入管道:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.Use<SniffMiddleware>();
    }
}

不要忘记安装Microsoft.Owin.Host.SystemWeb:

Install-Package Microsoft.Owin.Host.SystemWeb

否则你的中间件将不会在“IIS集成管道”中执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OWIN 上的 Application_PreSendRequestHeaders() 的相关文章

随机推荐

  • IntelliJ IDEA 终端特殊字符

    我最近开始在 Windows 10 上使用 IntelliJ IDEA Ultimate 并且非常想使用集成终端 但是 我无法让它与特殊字符 例如德语元音变音或 等 一起使用 如果我没有一些以 开头的文件夹 我无法重命名这些文件夹 那不会是
  • 移除边框后,边距超出 div 范围

    源于我网站上边框和边距的实际问题 我制作了这个测试示例 我认为它有点奇怪
  • 如何在Java中拥有多重地图功能?

    我想要具有以下功能MultiMap在 Java 中 提供与 cpp MultiMap 相同的功能 以便我能够拥有多个具有相同值的键 容器中的多个元素可以具有相同的键 我认为这会起作用 TreeMap
  • 从列表值动态创建匿名对象c#

    我有一个字符串列表 或者可以是数组 我想从中动态创建匿名对象 我该怎么做呢 var dataSet new DataSet dataSet ReadXml var dataTable dataSet Tables 0 var dataRow
  • Javascript 可以检测嵌入的 Youtube 视频何时结束吗?

    我有一个包含视频的 div div 的背景有一个假的 播放 按钮 我将其设计为用作播放按钮 而不是 Youtube 的标准视频 播放 按钮 视频最初设置为 display none 我部署了下面的代码 以便当您单击 div 时 div 消失
  • 蒙特卡洛圆周率计算可以用来创造世界纪录吗?

    我有这个随机函数来计算 pi蒙特卡罗风格 max 10000000 format long in 0 tic for k 1 max x rand y rand if sqrt x 2 y 2 lt 1 in in 1 end end to
  • 以编程方式更改 Windows 电源设置

    是否可以更改笔记本电脑合上盖子时的省电行为休眠 待机 关机 to 没做什么来自 NET 框架 Edit 看来 通过将值设置为 待机 并阻止我的应用程序的待机 可以检测到盖子关闭事件 这正是我真正想要的 I found 这个问题它涉及检测盖子
  • 重新启动自己 - 我可以从头开始重新初始化一切吗?

    我有这样的事情 public static final String path static path loadProperties config conf getProperty path public static void main
  • AnyLogic Attractor 奇怪的行为

    我的理解是 节点内的吸引子的容量应该为 1 从某种意义上说 在 3D 动画中 每个吸引子应该只有一个代理 当我运行模型时 我看到同一个吸引子上有两个代理形状 而其他吸引子是空的 这是正常行为吗 有没有办法防止这种情况发生 请注意 这种情况并
  • pgAdmin III 的错误行为?

    我在 pgAdmin 上进行查询时偶然发现了这种奇怪的行为 我已连接到运行 PostgreSQL 9 1 9 的服务器 我有一个名为 messages 的表 其定义如下 ghareh godot psql psql 9 1 9 Type h
  • 错误:“f”的类型与之前的“f”声明存在冲突

    这段代码只是我在实际代码中发现的一种情况 它非常大 所以我给出这个 在此代码中 结构 struct node 未定义 它是在另一个 c 源文件中定义的 我的c源代码 test c 1 include
  • 字节变量的 VBA 溢出错误

    有人可以解释一下为什么当操作的接收者时以下代码会在 VBA 中生成溢出错误c is an Integer Dim a As byte b As Byte Dim c As Integer a 3 b 100 c a b 或者这是否意味着涉及
  • 将整数转换为十六进制

    我只需要将整数转换为十六进制 实际上我有一个字符数组 在其中存储十六进制值 int var var self getValue char hexValues 5 hexValues 0 0x02 hexValues 1 0x04 hexVa
  • Heroku 应用程序和 mysql 的 config.php 代码出错

    我正在使用 Heroku for PHP 我查看了 Heroku 日志 发现 config php 代码中有错误 我正在为我的编码组合制作一个 Spotify 克隆 我使用 xampp apache mysql 成功制作了该组合 但现在我需
  • 在针对顺序运行进行优化的程序上使用 openMP 后没有性能提升

    我已经尽可能地优化了顺序运行的功能 当我使用 openMP 时 我发现性能没有提高 我在1核机器和8核机器上测试了我的程序 性能是一样的 将年份设置为 20 我有1 核 1 秒 8 核 1 秒 将年份设置为 25 我有1 核 40 秒 8
  • 将重复文本文件上传到 SQL Server 的最简单方法

    我有一个制表符分隔的日志文件 其中该日志文件中的新数据需要转储到 sql server 2008 数据库中 我想知道自动化此操作的最佳方法是什么 我可以在管理工作室内使用哪些服务来帮助我 如果你有SQL Server Integration
  • 创建信封时出现 ACCOUNT_LACKS_PERMISSIONS 错误

    我在创建信封时收到此错误 DocuSign eSign Client ApiException Error calling CreateEnvelope errorCode ACCOUNT LACKS PERMISSIONS message
  • HTML 中的 PHP 不起作用

    我只是想知道为什么这个 HTML 文件不显示任何内容 我在网络服务器上运行它 文件名是index php 我已经修复了 您应该确保提供以下信息 PHP 在您的服务器上 文件必须以 php 结尾 使用开放标签
  • 倾斜位图,RGB565 C# 的步幅计算

    我生成的图像有些是倾斜的 有些则不是 预期结果 529x22 实际结果 529x22 不要介意不同的图像尺寸 这些是屏幕截图 它们的尺寸均为 529x22 我正在使用的代码是我刚刚从 SO 的一个问题的答案中得到的 some other m
  • OWIN 上的 Application_PreSendRequestHeaders()

    我有一个不使用 OWIN 中间件的应用程序 并且具有以下内容Global asax public class MvcApplication HttpApplication protected void Application Start p