I am working on SPA app using ASP.NET + AngularJS. When i want to create user and assign role to him, everything works fine until i get to if condition where i check if that user got some role. It always throw me internal error (500) and breaks on this if statement "if (!UserManager.IsInRole(user, role.Name))".
It doesnt make any sence since i checked my database and there isnt any role assigned to that user. Am i missing something why it keeps failing?
public async Task<IHttpActionResult> ManageUsersInRole(UsersInRoleModel model)
{
var role = await RoleManager.FindByIdAsync(model.Id);
if (role == null)
{
ModelState.AddModelError("", "Role does not exist");
return BadRequest(ModelState);
}
foreach (string user in model.EnrolledUsers)
{
var appUser = await UserManager.FindByEmailAsync(user);
if (appUser == null)
{
ModelState.AddModelError("", String.Format("User: {0} does not exists", user));
continue;
}
//here it always throw me internal error 500
if (!UserManager.IsInRole(user, role.Name))
{
IdentityResult result = await UserManager.AddToRoleAsync(user, role.Name);
if (!result.Succeeded)
{
ModelState.AddModelError("", String.Format("User: {0} could not be added to role", user));
}
}
}
foreach (string user in model.RemovedUsers)
{
var appUser = await UserManager.FindByIdAsync(user);
if (appUser == null)
{
ModelState.AddModelError("", String.Format("User: {0} does not exists", user));
continue;
}
IdentityResult result = await UserManager.RemoveFromRoleAsync(user, role.Name);
if (!result.Succeeded)
{
ModelState.AddModelError("", String.Format("User: {0} could not be removed from role", user));
}
}
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
return Ok();
}
Aucun commentaire:
Enregistrer un commentaire