Измените ключ IdentityUser со строки на GUID — UserManager больше не работает.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Измените ключ IdentityUser со строки на GUID — UserManager больше не работает.

Сообщение Anonymous »

Недавно я решил перейти со строки на GUID в качестве уникального идентификатора для IdentityUser. Я успешно применил миграцию к базе данных, но теперь методы UserManager больше не работают. Поиск пользователя по электронной почте с помощью DbContext работает нормально (DataContext.Users.SingleAsync(...)), но возвращает значение NULL с помощью UserManager(UserManager.FindByIdAsync(...))
Пользователь приложения:
public class ApplicationUser : IdentityUser
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public override Guid Id { get; set; }
}

DbContext:
public class DataContext :
IdentityDbContext,
IDataContext
{
private readonly IUserContextAccessor _userContextAccessor;

public DataContext(DbContextOptions options, IUserContextAccessor userContextAccessor) : base(options)
{
_userContextAccessor = userContextAccessor;
}

protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}

Служба профилей (я получаю ошибку внутри метода IsActiveAsync)
public class ProfileService : IProfileService
{
private readonly IUserClaimsPrincipalFactory _claimsFactory;
private readonly UserManager _userManager;

public ProfileService(
UserManager userManager,
IUserClaimsPrincipalFactory claimsFactory)
{
_userManager = userManager;
_claimsFactory = claimsFactory;
}

public async Task GetProfileDataAsync(ProfileDataRequestContext context)
{
...
}

public async Task IsActiveAsync(IsActiveContext context)
{
var sub = context.Subject.GetSubjectId();
var user = await _userManager.FindByIdAsync(sub);
context.IsActive = user != null;
}
}

И, наконец, я регистрирую это так:
services.AddIdentity(options =>
{
options.User.RequireUniqueEmail = true;
})
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();


Подробнее здесь: https://stackoverflow.com/questions/787 ... nger-works
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Невозможно разрешить исключение UserManager
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Служба для типа «Microsoft.AspNetCore.Identity.UserManager`1[Microsoft.AspNetCore.Identity.IdentityUser]» не зарегистрир
    Anonymous » » в форуме C#
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • «Нет службы для типа» microsoft.aspnetcore.identity.usermanager`1 [microsoft.aspnetcore.identity.identityUser] «был заре
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Вставка GUID в поле «uniqueidentifier» в SQL Server приводит к пустому guid.
    Anonymous » » в форуме C#
    0 Ответы
    90 Просмотры
    Последнее сообщение Anonymous
  • Вставка GUID в поле «uniqueidentifier» в SQL Server приводит к пустому guid [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    77 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»