自定义Asp.Net Identity用户将数据存储在多个表中

时间:2015-07-08 13:42:17

标签: entity-framework asp.net-identity

我们的MVC 5应用程序正在使用Entity Framework和Code First。我们的设计需要用户数据,包括存储在一个表(Profile)中的散列密码,而用于登录的电子邮件地址将存储在另一个表(ProfileIdentifier)中。

我们希望尽可能多地利用Asp.Net身份。但是,我不确定如何自定义它以使用我们拥有的多表结构。

我可以创建一个SQL脚本来提供标准User对象的数据:

SELECT p.[ProfileId]                        AS Id -- GUID
      , pid.ProfileIdentifierValue          AS Email
      , pid.ConfirmedDate                   AS EmailConfirmed
      , LTRIM(RTRIM(ISNULL([Salutation] + ' ','') + 
        ISNULL([FirstName] + ' ','') + 
        ISNULL([MiddleName] + ' ','') + 
        ISNULL([LastName],'')))
            AS Name 
      ,[Password]                           AS PasswordHash
      ,[PasswordSalt]
      ,[SecurityQuestion]
      ,[SecurityAnswer]
      , pid.ProfileIdentifierValue          AS UserName
FROM [dbo].[Profile]                    AS p
    INNER JOIN dbo.ProfileIdentifier    AS pid
        ON p.ProfileId = pid.ProfileId
WHERE pid.ProfileIdentifierTypeId = 1

但是,在我的C#代码中,我如何将IdentityUser对象映射到此。我需要创建自定义用户对象吗?自定义用户管理器和用户存储?我已经玩了很多代码,并在线阅读了几篇文章,但似乎并不适合所有的部分。我不是在问正确的问题吗?请帮忙!

0 个答案:

没有答案