#asp.net-identity
#asp.net-identity
Вопрос:
Я создал пользователей и назначил одну роль для каждого пользователя, используя приведенное ниже: я должен обновить userinfo и роль, остающуюся у пользователя admin.
var userDet = new ApplicationUser
{
Email = model.Email,
UserName = model.Email,
TenantId = tenantId,
IsAdmin = false
};
var result = await _userManager.CreateAsync(userDet, model.Password);
if (model.Role == "ADMIN")
throw new NullReferenceException("Can't Add Admin Role to User!");
var assignRole = await _userManager.AddToRoleAsync(userDet, model.Role);
Но я не могу обновить созданную роль пользователя, поскольку я не могу получить идентификатор роли и имя роли из идентификатора пользователя из приведенного ниже кода:
var user = await _userManager.FindByEmailAsync(model.Email);
var admin = await _userManager.FindByEmailAsync(model.AdminEmail);
bool IsAdmin = admin.IsAdmin;
var userDet = new ApplicationUser
{
OrganizationName = model.OrganizationName,
};
var result = await _userManager.UpdateAsync(userDet);
var user = await _userManager.FindAsync(model.Email);
string oldRoleName = await _userManager.GetRoles(user.Id).FirstOrDefault();
var removerole= await _roleManager.RemoveRoleAsync(user.Id, oldRoleName);
var result2 = await _userManager.AddToRoleAsync(user.Id, model.Role);
Я не могу повторно получить RoleName, roleid из приведенного выше кода.
Как я могу обновить пользователя на основе идентификатора модели.Пользователь электронной почты от другого пользователя.
Ответ №1:
var user =await _userManager.FindByEmailAsync(model.Email);
var roles = await _userManager.GetRolesAsync(user);
await _userManager.RemoveFromRoleAsync(user, roles[0]);
await _userManager.AddToRoleAsync(user, model.Role);