据我了解,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/