Как реализовать AddToRoleAsync в пользовательском магазине - PullRequest
0 голосов
/ 14 февраля 2019

Использование следующего пользовательского хранилища:

public class UserStore : IUserStore<AspNetUsers>, IUserPasswordStore<AspNetUsers>, IUserSecurityStampStore<AspNetUsers>, ILookupNormalizer, IUserClaimStore<AspNetUsers>, IUserRoleStore<AspNetUsers>

Как мне реализовать реализацию для AddToRoleAsync?

Понятия не имею, что я делаю, это беспорядок у меня такдалеко:

public async Task AddToRoleAsync(AspNetUsers user, string roleName, CancellationToken cancellationToken)
    {
        var role = await roleStore.FindByNameAsync(Normalize(roleName), cancellationToken);
        if(role != null && !string.IsNullOrEmpty(role.Name))
        {
            user.AspNetUserRoles.Add(new AspNetUserRoles()
            {
                RoleId = role.Id,
                Role = new AspNetRoles()
                {
                    Id = Guid.NewGuid().ToString(),
                    ConcurrencyStamp = Guid.NewGuid().ToString(),
                    Name = role.Name,
                    NormalizedName = role.NormalizedName
                },
                User = user,
                UserId = user.Id
            });
        }
        else
        {
            Console.WriteLine("Role doesn't exist, please create it");
        }
        await Task.CompletedTask;
    }

Обновление

Я думаю, это все, что мне нужно, но подтверждение было бы здорово.

user.AspNetUserRoles.Add(new AspNetUserRoles()
{
    RoleId = role.Id
});
...