public static void UseIdentityServerBearerTokenAuthentication(this IApplicationBuilder app, IdentityServerBearerTokenAuthenticationOptions options) { app.UseOwin(addToPipeline => { addToPipeline(next => { var builder = new Microsoft.Owin.Builder.AppBuilder(); var loggerFactory = app.ApplicationServices.GetService<Microsoft.Extensions.Logging.ILoggerFactory>(); var lifetime = app.ApplicationServices.GetService<IApplicationLifetime>(); var owinLoggerFactory = new OwinLoggerFactory(loggerFactory); var provider = app.ApplicationServices.GetService(typeof(Microsoft.AspNet.DataProtection.IDataProtectionProvider)) as Microsoft.AspNet.DataProtection.IDataProtectionProvider; var properties = new AppProperties(builder.Properties); properties.OnAppDisposing = lifetime.ApplicationStopping; properties.DefaultApp = next; builder.SetLoggerFactory(owinLoggerFactory); builder.Properties["security.DataProtectionProvider"] = new DataProtectionProviderDelegate(purposes => { var dataProtection = provider.CreateProtector(string.Join(",", purposes)); return new DataProtectionTuple(dataProtection.Protect, dataProtection.Unprotect); }); builder.UseIdentityServerBearerTokenAuthentication(options); return builder.Build(typeof(Func<IDictionary<string, object>, Task>)) as Func<IDictionary<string, object>, Task>; }); }); }
public static void UseIdentityServerBearerTokenAuthentication(this IApplicationBuilder app, IdentityServerBearerTokenAuthenticationOptions options) { app.UseOwin(addToPipeline => { addToPipeline(next => { var builder = new Microsoft.Owin.Builder.AppBuilder(); var loggerFactory = app.ApplicationServices.GetService <Microsoft.Framework.Logging.ILoggerFactory>(); var lifetime = app.ApplicationServices.GetService <IApplicationLifetime>(); var owinLoggerFactory = new OwinLoggerFactory(loggerFactory); var provider = app.ApplicationServices.GetService(typeof(Microsoft.AspNet.DataProtection.IDataProtectionProvider)) as Microsoft.AspNet.DataProtection.IDataProtectionProvider; var properties = new AppProperties(builder.Properties); properties.OnAppDisposing = lifetime.ApplicationStopping; properties.DefaultApp = next; builder.SetLoggerFactory(owinLoggerFactory); builder.Properties["security.DataProtectionProvider"] = new DataProtectionProviderDelegate(purposes => { var dataProtection = provider.CreateProtector(string.Join(",", purposes)); return(new DataProtectionTuple(dataProtection.Protect, dataProtection.Unprotect)); }); builder.UseIdentityServerBearerTokenAuthentication(options); return(builder.Build(typeof(Func <IDictionary <string, object>, Task>)) as Func <IDictionary <string, object>, Task>); }); }); }