Structuremap Web Api 2 Account Controller и отдельные учетные записи
Я довольно новичок в IOC и web-api 2, но у меня есть StructureMap для работы на моих собственных контроллерах в web-api 2. Что мне не удалось, так это использовать StructureMap на AccountController с использованием индивидуальных учетных записей. Я использую AccountController из коробки, и до сих пор мне удавалось следующее:
В 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());