Structuremap Web Api 2 Account Controller и отдельные учетные записи

Я довольно новичок в IOC и web-api 2, но у меня есть StructureMap для работы на моих собственных контроллерах в web-api 2. Что мне не удалось, так это использовать StructureMap на AccountController с использованием индивидуальных учетных записей. Я использую AccountController из коробки, и до сих пор мне удавалось следующее:

  1. В Ioc.cs я добавил следующее (из-за ошибок)

      x.For<IUserStore<ApplicationUser>>().Use<UserStore<ApplicationUser>>();
      x.For<DbContext>().Use(() => new ApplicationDbContext());
      x.For<ISecureDataFormat<AuthenticationTicket>()
           .Use<SecureDataFormat<AuthenticationTicket>>();
    

Но теперь я застрял с этой ошибкой:

"Экземпляр по умолчанию не зарегистрирован и не может быть автоматически определен для типа IDataSerializer"

Я действительно не знаю, что здесь делать. Я попытался найти случайный экземпляр IDataSerializer, но не удача.

Кстати... Я установил пакет Nuget "Structuremap.webapi2"

1 ответ

Решил это!

Добавьте эту конфигурацию в IoC.cs или DefaultRegistry:

        For<ISecureDataFormat<AuthenticationTicket>>().Use<SecureDataFormat<AuthenticationTicket>>();
        For<IDataSerializer<AuthenticationTicket>>().Use<TicketSerializer>();
        For<IDataProtector>().Use(() => new DpapiDataProtectionProvider().Create("ASP.NET Identity"));
        For<ITextEncoder>().Use<Base64UrlTextEncoder>();

        For<Microsoft.AspNet.Identity.IUserStore<ApplicationUser>>().Use<Microsoft.AspNet.Identity.EntityFramework.UserStore<ApplicationUser>>();
        For<System.Data.Entity.DbContext>().Use(() => new ApplicationDbContext());
Другие вопросы по тегам