Try changing this line to:
var Identityuser = userManager.FindByNameAsync(request.UserName).Result;
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
I work on .net core 7 blazor web app . i face issue when working on identity user register .
when debug on function userManager.FindByNameAsync it hang and stuck
so I try to add watch to function userManager.FindByNameAsync to check reason
I get message function evaluation require all thread to run when make add
so How to solve this issue please And are that will make hang on run time application run on IIS .
my code generate error
public async Task<ResponseModel> Submit(UserDto request)
{
string roleName = request.UserRole == 1 ? "Normal" : "Admin";
request.EmailAddress = "xyza3211116@gmail.com";
var Identityuser = await userManager.FindByNameAsync(request.UserName);
var newUserIdentity = new ApplicationUser()
{
FullName = request.UserName,
Email = request.EmailAddress,
UserName = request.UserName
};
var newUserResponse = await userManager.CreateAsync(newUserIdentity, "Cxx90111@7777?");
}
when debug it hangs on two variables Identityuser and newUserResponse
and give me function evaluation require all thread to run When make add watch to these two function userManager.CreateAsync and userManager.FindByNameAsync
so How to ignore this message and resume debugging AND see my result without hang
from debug
newUserResponse
variable
Id = 1127, Status = WaitingForActivation, Method = "{null}", Result = "{Not yet computed}"
I using user manager for microsoft
private readonly UserManager<IdentityUser> userManager;
private readonly RoleManager<IdentityRole> roleManager;
private readonly SignInManager<ApplicationUser> _signInManager;
name space used
using Microsoft.AspNetCore.Identity;
Try changing this line to:
var Identityuser = userManager.FindByNameAsync(request.UserName).Result;
thank you for support
this is solved
var Identityuser = userManager.FindByNameAsync(request.UserName).Result; --solved
but still can't add role
userManager.AddToRoleAsync(newUserIdentity, roleName).Result; --still yet not solving
issue on bold line on function submit
it give me same issue function evaluation require all thread to run
full code details
public class ResponseModel
{
public object result { get; set; }
public string message { get; set; }
public Status status { get; set; }
public void Success(object data)
{
result = data;
message = "success";
status = Status.success;
}
public void Success()
{
result = null;
message = "success";
status = Status.success;
}
public void Failed(string errorMsg)
{
result = null;
message = errorMsg;
status = Status.InternalServerError;
}
public void PartiallySucceed(string errorMsg)
{
result = null;
message = "partially Succeed : " + errorMsg;
status = Status.success;
}
}
public enum Status
{
success = 200,
SuccessButDataNoFound = 404,
InternalServerError = 500,
Unauthorized = 401,
BadRequest = 404
}
public async Task<ResponseModel> Submit(UserDto request)
{
try
{
string roleName = request.UserRole == 1 ? "Normal" : "Admin";
request.EmailAddress = "Mchelaziz.ga.ba@gmail.com";
var Identityuser = userManager.FindByNameAsync(request.UserName).Result;
var newUserIdentity = new IdentityUser()
{
UserName = request.UserName
};
var newUserResponse = userManager.CreateAsync(newUserIdentity, "Cxyz90191@1234?").Result;
//if (newUserResponse.Succeeded)
**var a= userManager.AddToRoleAsync(newUserIdentity, roleName).Result;//issue here**
if (Identityuser == null)
{
//First Check If User Exist
var UserExsit = _UsersRepository.GetList(x => x.UserName == request.UserName).FirstOrDefault();
if (UserExsit == null)
{
//check the User is on Active Directory
string adPath = "LDAP://DC=XXX,DC=XX";
var adAuth = new LdapAuthentication(adPath).userexists(request.UserName, "xx");
if (adAuth)
{
var newUser = new Users();
newUser.UserName = request.UserName;
newUser.IsActive = true;
newUser.UserRoll = request.UserRole;
newUser.UserType = request.UserType;
newUser.CreatedBy = 1;
newUser.CreatedDate = DateTime.Now;
var result = _UsersRepository.Insert(newUser);
if (result.ID != 0)
{
IdentityRole role_ = new IdentityRole(roleName);
var exists = await roleManager.RoleExistsAsync(roleName);
if (!exists)
{
var results = await roleManager.CreateAsync(role_);
if (results.Succeeded)
{
var user_ = await userManager.CreateAsync(new IdentityUser { UserName = result.UserName, NormalizedUserName = result.UserName });
var user = await userManager.FindByNameAsync(request.UserName);
await userManager.AddToRoleAsync(user, roleName);
}
}
else
{
var user_ = await userManager.CreateAsync(new IdentityUser { UserName = result.UserName, NormalizedUserName = result.UserName });
var user = await userManager.FindByNameAsync(request.UserName);
await userManager.AddToRoleAsync(user, roleName);
}
_response.Success(newUser);
}
else
_response.Failed("Sorry, Failed to Registeration User");
}
else
_response.Failed("Sorry, The User Not Exist in Active Directory");
}
else
_response.Failed("Sorry, The User Is Already Exist");
}
else
{
_response.Failed("Sorry, The User Is Already Exist");
}
}
catch(Exception ex)
{
_response.Failed("Failed to save User");
}
return _response;
}