扩展asp.net身份OWIN身份验证框架以使用Amazon DynamoDb

时间:2013-11-19 23:16:53

标签: c# webforms amazon-dynamodb asp.net-identity owin

我计划使用Amazons NoSQL DynamoDB而不是MS SQL Server以及Visual Studio 2013附带的最新ASP.NET身份(OWIN)框架,但发现它与Microsoft的Entity Framework紧密结合。我使用的是WebForm而不是MVC。

有关如何处理此事的任何建议?需要覆盖哪些类? DynamoDB甚至可以与EF一起使用吗?

1 个答案:

答案 0 :(得分:6)

Microsoft.AspNet.Identity.Core中的类不依赖于Entity Framework,可以与任何持久性存储一起使用。 您需要提供自己的UserStore版本,并且可能需要提供Microsoft.AspNet.Identity.EntityFramework中的RoleStore(如果需要)类。使用NoSQL数据库时,您不希望包含Microsoft.AspNet.Identity.EntityFramework

根据您的需要,您必须在UserStore上实现许多接口。您至少需要实施IUserStoreIUserPasswordStoreIUserSecurityStampStoreIUserLoginStore。 Microsoft提供的实体框架UserStore实现了IUserClaimStore<TUser>IUserRoleStore<TUser>,根据您将调用的UserManager的方法,您可能需要或不需要实现它们。

假设您跳过了IUserClaimStore和IUserRoleStore,它实现了14种方法,但大多数方法都非常直接实现。这14种方法足以支持从默认模板中使用AccountController的部分。

我在GitHub上有一个项目,我自己尝试了类似的东西,即我实现了一个使用MongoDb而不是EntityFramework来持久化的UserStore。