扩展当前User类以处理Identity

时间:2014-09-06 09:43:31

标签: asp.net entity-framework asp.net-identity

我们在ASP.NET网站上使用表单身份验证,但希望升级到新的身份提供程序。目前我们正在使用数据库第一种方法,并且最终只想扩展我们当前的User表(而不是aspnet_users)以使用新的身份格式。我们使用StructureMap将我们的上下文注入到业务逻辑类中。例如,我们的用户服务目前将其作为构造函数:

private readonly SiteModelContainer _context;
public UserService(SiteModelContainer context)
{
    this._context = context;
}

在我们的Io​​C注册表中,我们有:

var ecsbuilder = new EntityConnectionStringBuilder();
ecsbuilder.Provider = "System.Data.SqlClient";
ecsbuilder.ProviderConnectionString = @"data source=***;initial catalog=***;persist security         info=True;User ID=***;Password=***;multipleactiveresultsets=True;App=EntityFramework";
ecsbuilder.Metadata = @"res://*/Data.***.csdl|res://*/Data.***.ssdl|res://*/Data.***.msl";
string connectionString = ecsbuilder.ToString();
For<SiteModelContainer>().Use<SiteModelContainer>().Ctor<string>("connectionString").Is(connectionString);
For<IUserService>().Use<UserService>();
...all the rest of our services

我们还首先使用数据库与EDMX和实体框架。以前我们只是使用了ASP.NET身份验证,因为它出现在框中,并且有一个单独的用户表来存储配置文件信息,但是希望让一切工作在一个用户类之外。

1)是否可以扩展我们的用户服务以处理与使用Identity相关的所有内容?那么Identity使用我们注入到我们类中的相同上下文?如果是这样,我无法找到任何关于它的文章?

2)如果在EDMX文件中创建了User对象,我们是否能够扩展它?

由于

1 个答案:

答案 0 :(得分:0)

我已将2个相当大的项目从MembershipProvider迁移到Asp.Net Identity中,这两次我最终都重写了用户管理的大部分内容以及触及用户的所有内容。一个相当粗糙的重写。

你要求的是可能的,但是很难且非常耗费时间。您可以从this question开始 - OP已经使用身份运行了他的db-first项目。我们在评论中讨论了一些可能对您有帮助的链接。