ASP.NET Identity 2 - внедрение ISecureDataFormat<>
У меня та же проблема, описанная здесь без ответа, просто с помощью Unity.
Я пытаюсь зарегистрироваться ISecureDataFormat<>
в последнем VS2013 (обновление 2) SPA/Web Api шаблон.
я пробовал
container.RegisterType(typeof(ISecureDataFormat<>), typeof(SecureDataFormat<>));
container.RegisterType<ISecureDataFormat<AuthenticationTicket>, SecureDataFormat<AuthenticationTicket>>();
container.RegisterType<ISecureDataFormat<AuthenticationTicket>, TicketDataFormat>();
Это "работает", но не совсем, потому что тогда он жалуется на следующую зависимость в этом дереве, IDataSerializer... и затем на следующий IDataProtector, для которого я не нашел реализации.
1 ответ
Я решил следующую ошибку в SimpleInjector со следующими отображениями
container.Register<IDataSerializer<AuthenticationTicket>, TicketSerializer>();
container.Register<IDataProtector>(() => new DpapiDataProtectionProvider().Create("ASP.NET Identity"));
Чтобы выяснить, какой сериализатор использовался, я заметил, что универсальный параметр ISecureDataFormat в AccountsController имел тип AuthenticationTicket. При проверке пространства имен IDataSerializer TicketSerializer реализует IDataSerializer.
Чтобы выяснить IDataProtector, я снова заглянул в пространство имен IDataProtector и обнаружил реализацию IDataProtectionProvider.