【问题标题】:Extend asp.net identity OWIN authentication framework to work with Amazon DynamoDb扩展 asp.net 身份 OWIN 身份验证框架以使用 Amazon DynamoDb
【发布时间】:2013-11-20 15:02:36
【问题描述】:
我计划使用 Amazon 的 NoSQL DynamoDB 代替 MS SQL Server 和 Visual Studio 2013 附带的最新 ASP.NET 身份 (OWIN) 框架,但发现它与 Microsoft 的实体框架紧密结合。我使用的是 WebForm 而不是 MVC。
关于如何解决这个问题的任何建议?哪些类需要被覆盖? DynamoDB 甚至可以与 EF 一起使用吗?
【问题讨论】:
标签:
c#
webforms
amazon-dynamodb
asp.net-identity
owin
【解决方案1】:
Microsoft.AspNet.Identity.Core 中的类不依赖于实体框架,可以与任何持久性存储一起使用。
您将需要提供您自己的 UserStore 版本,可能还有来自Microsoft.AspNet.Identity.EntityFramework 的 RoleStore(如果需要)类。您不想在使用 NoSQL 数据库时包含 Microsoft.AspNet.Identity.EntityFramework。
根据您的需要,您必须在 UserStore 上实现许多接口。您至少需要实现IUserStore、IUserPasswordStore、IUserSecurityStampStore 和IUserLoginStore。 Microsoft 提供的实体框架 UserStore 实现了 IUserClaimStore<TUser> 和 IUserRoleStore<TUser>,您可能需要也可能不需要实现它们,具体取决于您将调用的 UserManager 的哪些方法。
假设您跳过 IUserClaimStore 和 IUserRoleStore,它有 14 种方法可以实现,但其中大部分都非常简单地实现。这 14 种方法足以支持默认模板中 AccountController 使用的部分。
我在GitHub 有一个项目,我自己尝试过类似的事情,即我实现了一个使用 MongoDb 而不是 EntityFramework 的 UserStore 来实现持久性。