在.NET标准中创建OWIN中间件

时间:2017-05-18 15:29:14

标签: asp.net asp.net-core owin

TL; DR;

有没有办法在.NET Standard中创建一个与Microsoft.Owin向后兼容的Owin中间件?

详情

我创建了一个简单的中间件,如:

-

我在" classic"中添加了它与Owin在板上的ASP.NET应用程序。使用:

public class RequestTrackingMiddleware
{
    private readonly RequestDelegate _next;

    public RequestTrackingMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task Invoke(HttpContext context)
    {
        var sw = Stopwatch.StartNew();
        await _next(context);
        sw.Stop();
        Console.WriteLine(sw);
    }

但我最终得到了:

  

Microsoft.AspNet.Identity.Owin.IdentityFactoryMiddleware`2 [....]和Microsoft.AspNetCore.Http.RequestDelegate之间无转换。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

是的,你可以,但那不是OWIN中间件,即ASP.NET核心中间件。请参阅此博文http://benfoster.io/blog/how-to-write-owin-middleware-in-5-different-steps(第3步是最相关的)。然后,您可以在Katana或ASP.NET Core中使用该OWIN中间件(通过OWIN网桥),以https://codeopinion.com/migrate-from-katana-asp-net-core/为例。