Расширение инфраструктуры аутентификации OWIN для идентификации asp.net для работы с Amazon DynamoDb

Я планирую использовать Amazons NoSQL DynamoDB вместо MS SQL Server с новейшей инфраструктурой ASP.NET Identity (OWIN), которая поставляется с Visual Studio 2013, но обнаружила, что она тесно связана с Microsoft Entity Framework. Я использую WebForm, а не MVC.

Любое предложение о том, как подойти к этому? Какие классы нужно переопределить? Будет ли DynamoDB работать с EF?


person user2655247    schedule 19.11.2013    source источник


Ответы (1)


Классы в Microsoft.AspNet.Identity.Core не зависят от Entity Framework и могут использоваться с любым хранилищем сохраняемости. Вам нужно будет предоставить свою собственную версию UserStore и, возможно, классов RoleStore (если вам это нужно) из Microsoft.AspNet.Identity.EntityFramework. Вы не хотите включать Microsoft.AspNet.Identity.EntityFramework при использовании базы данных NoSQL.

В зависимости от того, что вам нужно, вам придется реализовать ряд интерфейсов в вашем UserStore. Вам нужно как минимум реализовать IUserStore, IUserPasswordStore, IUserSecurityStampStore и IUserLoginStore. Microsoft предоставила Entity Framework UserStore, реализующую IUserClaimStore<TUser> и IUserRoleStore<TUser>, которые вам могут потребоваться или не потребоваться реализовать в зависимости от того, какие методы UserManager вы будете вызывать.

Предполагая, что вы пропустите IUserClaimStore и IUserRoleStore, нужно реализовать 14 методов, большинство из которых довольно просто реализовать. Этих 14 методов достаточно для поддержки частей, которые используются из AccountController из шаблонов по умолчанию.

У меня есть проект на GitHub, где я сам пробовал нечто подобное, т.е. Я реализовал UserStore, который использует MongoDb вместо EntityFramework для сохранения.

person Olav Nybø    schedule 20.11.2013