Я работаю над реализацией пользовательского FormsAuthenticationProvider
, и у меня возникает ошибка преобразования промежуточного программного обеспечения.Реализация пользовательского FormsAuthenticationProvider с использованием Owin, Katana и Nancy
No conversion available between System.Func`2[System.Collections.Generic.IDictionary`2
[System.String,System.Object],System.Threading.Tasks.Task] and Microsoft.Owin.OwinMiddleware
Parameter name: signature
Мой стек включает
- Owin
- Katana
- Нэнси
Мой конкретный вопрос будет какой-нибудь совет о том, где искать пример о том, как реализовать обычай FormsAuthenticationProvider
? Если кто-то не обнаружит мою проблему.
Моя реализация выглядит следующим образом:
Startup.cs
app.UseFormsAuthentication(new FormsAuthenticationOptions
{
LoginPath = "/login",
LogoutPath = "/logout",
CookieHttpOnly = true,
AuthenticationType = Constants.ChainLinkAuthType,
CookieName = "chainlink.id",
ExpireTimeSpan = TimeSpan.FromDays(30),
Provider = kernel.Get<IFormsAuthenticationProvider>()
});
Если удалить app.UseFormsAuthentication(...)
приложение работает без ошибок.
Полный Трассировка стека
[ArgumentException: No conversion available between System.Func`2[System.Collections.Generic.IDictionary`2[System.String,System.Object],System.Threading.Tasks.Task] and Microsoft.Owin.OwinMiddleware
Parameter name: signature]
Owin.Builder.AppBuilder.Convert(Type signature, Object app) +328
Owin.Builder.AppBuilder.BuildInternal(Type signature) +336
Owin.Builder.AppBuilder.Build(Type returnType) +42
Microsoft.Owin.Host.SystemWeb.OwinAppContext.Initialize(Action`1 startup) +650
Microsoft.Owin.Host.SystemWeb.OwinBuilder.Build(Action`1 startup) +86
Microsoft.Owin.Host.SystemWeb.OwinBuilder.Build() +185
System.Lazy`1.CreateValue() +416
System.Lazy`1.LazyInitValue() +152
System.Lazy`1.get_Value() +75
Microsoft.Owin.Host.SystemWeb.OwinApplication.get_Instance() +35
Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init(HttpApplication context) +106
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +418
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296
[HttpException (0x80004005): No conversion available between System.Func`2[System.Collections.Generic.IDictionary`2[System.String,System.Object],System.Threading.Tasks.Task] and Microsoft.Owin.OwinMiddleware
Parameter name: signature]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9874568
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254
Исполняемые Исходный код (Просто F5 это, и вы получите ошибку сразу)
https://github.com/cnwilkin/ChainLink/tree/spike
Спасибо большое, что все исправлено. –
Я пошел в nuget и щелкнул обновление, и ошибка преобразования ушла – Luke