c# - Owin 是否也可以处理其管道中的响应

标签 c# architecture owin

据我了解,Owin 现在是一个模块管道,您可以定义它来处理传入的请求。任何模块都可以返回响应或将请求传递给下一个模块。所以这使得添加日志记录或身份验证或诸如此类的东西变得非常容易,非常酷。

但是如果我想记录响应怎么办?您能否创建一个针对每个响应运行的模块,而不管响应来自管道中的哪个位置?如果可能的话,你能提供一个例子或链接吗,我在网上似乎找不到这种情况。

最佳答案

事实证明它非常简单且合乎逻辑,This blogpost显示了有关如何为请求计时的示例。由于一个模块要么将请求传递给下一个模块,要么返回一个响应,这只是将一个模块注册为第一个模块并使用 ContinueWith 处理返回值的问题:

public Task Invoke(IDictionary<string, object> environment)
{
    return _next(environment).ContinueWith(result =>
    {
        Logger.LogResult(result);
        return result;
    });
}

关于c# - Owin 是否也可以处理其管道中的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17489561/

相关文章:

database - 架构 Web 服务器、应用程序服务器和数据库服务器

reactjs - AG-Grid 与 Redux

c++ - 如何布局我的 C++ 程序? (我应该把 .h 和 .cpp 文件放在哪里?)

c# - MVC - 混合身份验证 - OWIN + Windows 身份验证

c# - 在 Silverlight 中更改控件的内容时触发的事件

c# - Unity Survival Shooter Enemy 不受伤害 - Android

c# - 获取视频长度

c# - 如何检查 PowerPoint 幻灯片是否包含图像

asp.net-web-api - 使用多种授权方案(HMAC 和 OATH)

c# - WebAPI 是否支持按 block 读取分块请求?