自定义ASP.NET身份(OWIN)使用Entity Framework的详细信息

时间:2013-10-04 12:51:23

标签: entity-framework azure azure-table-storage owin asp.net-identity

此博客:

http://blogs.msdn.com/b/webdev/archive/2013/06/27/introducing-asp-net-identity-membership-system-for-asp-net-applications.aspx

关于ASP.NET身份提供者状态:

  

持久性控制

     

默认情况下,ASP.NET Identity系统会将所有用户信息存储在数据库中。 ASP.NET Identity使用Entity Framework Code First来实现其所有持久性机制。

     

如果您的应用程序要求是此信息可能存储在不同的存储机制中,例如SharePoint,Azure表服务,无Sql数据库等,则现在可以插入不同的存储提供程序。

但是如何使用Azure表服务呢?我的研究表明你不能将实体框架与表服务一起使用,所以我认为你必须完全替换使用实体框架的代码,但我不确定。

相关问题:我是EF的新手。我们如何定制数据的存储方式(即使在SQL服务器中)?我发现了两个显示向用户表添加额外字段的示例:

http://www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on

http://www.asp.net/web-api/overview/security/external-authentication-services

但我不清楚到底发生了什么。我认为它首先使用实体​​框架代码,但我看到很少有关于如何自定义EF为此存储数据的文档。例如,我可以重命名实体吗?我可以定义数据库的名称吗?

...谢谢

-Ben

3 个答案:

答案 0 :(得分:3)

  • Asp.Net Identity使用EntityFramework实现存储的默认实现。

  • Microsoft.AspNet.Identity.Core有一个接口列表,需要实现这些接口才能将数据存储在您希望的位置和方式。这些接口提供了最少的所需成员和方法。

  • IdentityManager是您可以传递自定义商店界面实施的主要入口点。

  

IdentityManager(Microsoft.AspNet.Identity.IIdentityStore)

查看框架的这种自定义(与存储/存储无关,它将为您提供更多指导)

Implementing User Confirmation and Password Reset with One ASP.NET Identity

答案 1 :(得分:1)

我在这里回答了一个类似的问题,其中一个示例azure表存储实现应该可用于1.0.0 RTM位

Azure Table Storage User Store

答案 2 :(得分:1)

这应该提供大多数(如果不是全部)OP询问的细节: How To: Use Azure Table Storage as an OAuth Identity Store with Web API 2

看起来K. Scott Allen已经开始a series of blog posts走向这个方向(MongoDB vs. Azure Tables)。