UserManager.GetRoles doesn't work after extending the IdentityUserRole in MVC 5 Dot Net Identity

点点圈 提交于 2019-11-28 11:58:49

问题


I have extended the IdentityUserRole by adding a foreign key column and now I am unable to Authorize or retrieve Roles information. Could please anyone help me in sorting out this issue.

My IdentityUserRole has a foreign key column from AspNetApplications table and the IdentityUserRole extension is as follow

public class AspNetUserRoles : IdentityUserRole
{
    [Key]
    public string ApplicationId { get; set; }

    [ForeignKey("ApplicationId")]
    public AspNetApplications AspNetApplications { get; set; }
}

After adding the migration I can see the foreign key column is created in AspNetUserRoles table. A screen shot of the table is as follow

Here I have two questions to ask

  1. Why it has created an auto Discriminator column and how I can remove it, if it has any overhead.
  2. What extra I have to do in order to get my Authorization and UserManager.GetRoles working as they were before doing this extension.

回答1:


Discriminator column is about Table per Hierarchy (TPH).refer to this link What is a Discriminator column in ASP.NET Migrations?

About your authentication It should be something wrong with your dicriminator column.for example this code UserManager.GetRoles() has where clause for Discriminator filed to fetch data.

SELECT [Extent1].[Id] AS [Id], [Extent1].[Name] AS [Name] FROM [dbo].[Roles] AS [Extent1]
WHERE [Extent1].[Discriminator] = N'Role'

I think your where clause value in select command which send to database is different from what value you have in database



来源:https://stackoverflow.com/questions/32352732/usermanager-getroles-doesnt-work-after-extending-the-identityuserrole-in-mvc-5

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!