Добавление пользовательского столбца в таблицу AspNetUserRoles в ASP. NET Core 3.0 - ASP. NET Core IDENTITY - PullRequest
2 голосов
/ 31 марта 2020

Я создал таблицы путем миграции, чтобы управлять безопасностью моего ASP. NET Базового проекта с использованием ASP. NET Базовая идентификация.

ASP. NET Таблицы идентификаторов ядра

Мне нужно было бы иметь возможность вставить дополнительное поле в таблицу AspNetUserRoles, чтобы по-другому управлять пользователями, уже связанными с ролью ADMIN.

Например, у меня есть ADMIN, связанные с нацией США, и ADMIN, связанные с другой страной БРАЗИЛИЯ или ADMIN, связанной с ИТАЛИЕЙ, но их реальная роль всегда остается ADMIN.

На практике это просто еще один атрибут, который нужно добавить когда я связываю пользователя с ролью ADMIN.

ASP. NET Основные таблицы идентификаторов с настраиваемым столбцом в таблице AspNetUserRoles

Я пытался расширить IdentityUserRole класс следующим образом:

public class AspNetUserRoles : IdentityUserRole<string>
{
    public string Nation { get; set; }
}

, но затем, когда я запускаю сценарий миграции (сначала код) в классах миграции, изменения не обнаруживаются!

PM> Add-Migration aspnetuserrolesupdate -Context ApplicationDbContext

это результат:

public partial class aspnetuserrolesupdate : Migration
{
    protected override void Up(MigrationBuilder migrationBuilder)
    {
    }

    protected override void Down(MigrationBuilder migrationBuilder)
    {
    }
}

Как видно из кода продукта, изменений не обнаружено ....

В моем проекте я уже успешно вставил поля в таблицы AspNetUsers и AspNetRoles таким образом. , но как добавить третий столбец в таблицу AspNetUserRoles?

Спасибо всем

1 Ответ

2 голосов
/ 31 марта 2020

Я решил это так:

Я изменил внедренные классы, добавив их все, чтобы AppUserRole был доступен

public class ApplicationDbContext: // IdentityDbContext <ApplicationUser, ApplicationRole, string>
     IdentityDbContext <
     ApplicationUser, ApplicationRole, string,
     IdentityUserClaim <string>, ApplicationUserRole, IdentityUserLogin <string>,
     IdentityRoleClaim <string>, IdentityUserToken <string>>
{
     public ApplicationDbContext (DbContextOptions <ApplicationDbContext> options)
         : base (options)
     {
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...