[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
publicasyncTask<IActionResult>Register(RegisterViewModelmodel,stringreturnUrl=null)
{
//------------<Register_Postback()>------------
ViewData["ReturnUrl"]=returnUrl;
if(ModelState.IsValid)
{
//<newUser>
varaspNetUser=newApplicationUser{UserName=model.Username,Email=model.Email};
stringIDAspNetUser=aspNetUser.Id;
//</newUser>
//<create>
varresult=await_userManager.CreateAsync(aspNetUser,model.Password);
//</create>
if(result.Succeeded)
{
//----<UserCreatedSuccessfull>----
_logger.LogInformation("Usercreatedanewaccountwithpassword.");
//<confirm>
varcode=await_userManager.GenerateEmailConfirmationTokenAsync(aspNetUser);
varcallbackUrl=Url.EmailConfirmationLink(aspNetUser.Id,code,Request.Scheme);
await_emailSender.SendEmailConfirmationAsync(model.Email,callbackUrl);
//</confirm>
//<get_Info>
UserModeluser=_dbContext.tbl_Users.SingleOrDefault(i=>i.IDAspNetUser==IDAspNetUser);
if(user==null)
{
//<add>
user=newUserModel();
user.IDAspNetUser=IDAspNetUser;
user.dtCreated=DateTime.Now;
_dbContext.tbl_Users.Add(user);
//</add>
//<save>
try
{
await_dbContext.SaveChangesAsync(true);
}
catch(DbUpdateConcurrencyException)
{
returnContent("UpdateErrorUser_info");
}
//<save>
}
longIDCurrent_User=user.IDUser;
//<login>
//*logsinautomatically.eventuallydisable
await_signInManager.SignInAsync(aspNetUser,isPersistent:false);
//</login>
_logger.LogInformation("Usercreatedanewaccountwithpassword.");
returnRedirectToLocal(returnUrl);
//----</UserCreatedSuccessfull>----
}
AddErrors(result);
}
//<failed>
//*Ifwegotthisfar,somethingfailed,redisplayform
returnView(model);
//</failed>
//------------</Register_Postback()>------------
}
|