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.

Другие вопросы по тегам