gpt4 book ai didi

c# - 如何在 ASP.NET 5 中使用基于 IAppBuilder 的 Owin 中间件

转载 作者:可可西里 更新时间:2023-11-01 03:01:25 27 4
gpt4 key购买 nike

ASP.NET 5 (ASP.NET vNext) 与 Katana 一样基于 OWIN,但具有不同的抽象。值得注意的是,IAppBuilder 已被 IApplicationBuilder 取代。许多中间件库依赖于 IAppBuilder,并且尚未更新以支持 ASP.NET 5

如何在 ASP.NET 5 中间件中使用此 OWIN 中间件。两者都是基于 OWIN 的,因此应该是可能的。

Microsoft.AspNet.Builder.OwinExtensions 确实提供了 UseOwin 方法,但它基于低级 OWIN 签名,因此不能与期望的方法一起使用 IAppBuilder.

最佳答案

编辑:您现在可以使用 AspNet.Hosting.Katana.Extensions package为此。


这是一个略有不同的版本,它使用 AppBuilder.DefaultApp:

public static IApplicationBuilder UseOwinAppBuilder(this IApplicationBuilder app, Action<IAppBuilder> configuration)
{
if (app == null)
{
throw new ArgumentNullException(nameof(app));
}

if (configuration == null)
{
throw new ArgumentNullException(nameof(configuration));
}

return app.UseOwin(setup => setup(next =>
{
var builder = new AppBuilder();
var lifetime = (IApplicationLifetime) app.ApplicationServices.GetService(typeof(IApplicationLifetime));

var properties = new AppProperties(builder.Properties);
properties.AppName = app.ApplicationServices.GetApplicationUniqueIdentifier();
properties.OnAppDisposing = lifetime.ApplicationStopping;
properties.DefaultApp = next;

configuration(builder);

return builder.Build<Func<IDictionary<string, object>, Task>>();
}));
}

请注意,引用 Microsoft.Owin 会使您的应用与 dnxcore50 (Core CLR) 不兼容。

关于c# - 如何在 ASP.NET 5 中使用基于 IAppBuilder 的 Owin 中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30742028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com