ASP.NET Identity 2 — внедрение ISecureDataFormat‹›

У меня та же проблема, описанная здесь без ответ, просто используя Unity.

Я пытаюсь зарегистрировать ISecureDataFormat<> в последнем шаблоне SPA/Web Api VS2013 (обновление 2).

я пробовал

container.RegisterType(typeof(ISecureDataFormat<>), typeof(SecureDataFormat<>));
container.RegisterType<ISecureDataFormat<AuthenticationTicket>, SecureDataFormat<AuthenticationTicket>>();
container.RegisterType<ISecureDataFormat<AuthenticationTicket>, TicketDataFormat>();

Он "работает", но не совсем потому, что потом жалуется на следующую зависимость в этом дереве, IDataSerializer... а затем на следующий IDataProtector, для которого я не нашел реализации.


person parliament    schedule 23.06.2014    source источник


Ответы (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.

person Josh C    schedule 15.07.2014