private void RegisterAccount(NHibernate.ISession session, UserAccountEF user, string aggregatorGroupId) { switch (user.UserType) { case RegisterType.Contrator: ContractorUser cu = new ContractorUser(); cu.AggGroupId = aggregatorGroupId; cu.ContractStatus = (int)ContractStatusCodes.Signing; cu.UserId = user.Id; session.SaveAsync(cu); Task t = _userManager.AddToRoleAsync(user, UserRoleTypes.Contractor); t.Wait(); break; //case RegisterType.Supervisor: // var role_add_result = await _userManager.AddToRoleAsync(user, UserRoleTypes.Supervisor); // //_userManager.AddClaimAsync(user, new Claim()) // SupervisorUser supervisorUser = new SupervisorUserEF(); // supervisorUser.UserId = user.Id; // await _accountContext.SupervisorUsers.AddAsync(supervisorUser); // break; case RegisterType.Aggregator: Task ta = _userManager.AddToRoleAsync(user, UserRoleTypes.Aggregator); ta.Wait(); //_userManager.AddClaimAsync(user, new Claim()) AggregatorUser aggregatorUser = new AggregatorUser(); aggregatorUser.AggGroupId = aggregatorGroupId; aggregatorUser.UserId = user.Id; session.SaveAsync(aggregatorUser); break; } }
///// <summary> ///// 임시 사이트 추가 ///// </summary> ///// <param name="model"></param> ///// <returns></returns> //[HttpPost, Route("registtemporarysite")] //[AllowAnonymous] ////[ValidateAntiForgeryToken] //public async Task<IActionResult> RegistTemporarySite([FromBody] RegisterSiteModel model) //{ // //model.Email = value["Email"].ToString(); // //model.Password = value["Password"].ToString(); // //model.ConfirmPassword = value["ConfirmPassword"].ToString(); // //model.Username // if (ModelState.IsValid) // { // UserAccount contractor = await _userManager.FindByEmailAsync(model.ContractorEmail); // if(contractor == null) // { // IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).ContractorNotFounded(model.ContractorEmail); // IdentityResult _result = IdentityResult.Failed(error); // return BadRequest(new { Result = _result }); // } // ContractorUser cu = await _accountContext.ContractorUsers.FindAsync(contractor.Id); // TemporaryContractorSite newSite = new TemporaryContractorSite(); // newSite.Address1 = model.Address1; // newSite.Address2 = model.Address2; // newSite.ContractUserId = contractor.Id; // newSite.Latitude = model.Latitude; // newSite.IsJeju = model.IsJejuSite; // newSite.Longtidue = model.Longtidue; // newSite.LawFirstCode = model.LawFirstCode; // newSite.LawMiddleCode = model.LawMiddleCode; // newSite.LawLastCode = model.LawLastCode; // newSite.ServiceCode = model.ServiceCode; // newSite.RegisterTimestamp = DateTime.Now; // foreach (RegisterAssetModel asset in model.Assets) // { // string assetName = $"{asset.Type}{asset.Index}"; // TemporaryContractorAsset newAsset = new TemporaryContractorAsset(); // newAsset.AssetName = assetName; // newAsset.AssetType = asset.Type; // newAsset.CapacityKW = asset.CapacityMW; // newAsset.ContractorSite = newSite; // newAsset.UniqueId = Guid.NewGuid().ToString(); // await _accountContext.TemporaryContractorAssets.AddAsync(newAsset); // } // await _accountContext.TemporaryContractorSites.AddAsync(newSite); // await _accountContext.SaveChangesAsync(); // //var user = new ReservedAssetLocation // //{ // // AccountId = model.AccountId, // // Address1 = model.Address1, // // Address2 = model.Address2, // // ControlOwner = model.ControlOwner, // // //SiteInformation = model.SiteInformation, // // RegisterTimestamp = DateTime.Now, // // LawFirstCode = model.LawFirstCode, // // LawMiddleCode = model.LawMiddleCode, // // LawLastCode = model.LawLastCode, // // ServiceCode = model.ServiceCode, // // Latitude = model.Latitude, // // Longtidue = model.Longtidue // //}; // //accountContext.ReservedAssetLocations.Add(user); // //await accountContext.SaveChangesAsync(); // return Ok(); // } // // If we got this far, something failed, redisplay form // return BadRequest(); //} private UserAccountEF CreateUserAccount(AggregatorRegistModelBase model) { var user = new UserAccountEF { FirstName = model.FirstName, LastName = model.LastName, Email = model.Email, UserName = model.Email, CompanyName = model.Company, NormalizedUserName = model.Email.ToUpper(), PhoneNumber = model.PhoneNumber, Address = model.Address, RegistDate = DateTime.Now, Expire = DateTime.Now.AddDays(14), UserType = model.Type }; return(user); }
private UserAccountEF CreateUserAccount(RegisterViewModel model, RegisterType type) { var user = new UserAccountEF { FirstName = model.FirstName, LastName = model.LastName, Email = model.Email, UserName = model.Email, CompanyName = model.Company, NormalizedUserName = model.Email.ToUpper(), PhoneNumber = model.PhoneNumber, Address = model.Address, RegistDate = DateTime.Now, Expire = DateTime.Now.AddDays(14), UserType = type, RegistrationNumber = model.RegisterNumber }; return(user); }
private UserAccountEF CreateBasicAccount(BasicRegistModel model, RegisterType userType) { var user = new UserAccountEF { FirstName = model.FirstName, LastName = model.LastName, Email = model.Email, UserName = model.Email, CompanyName = "파워이십일", NormalizedUserName = model.Email.ToUpper(), PhoneNumber = model.PhoneNumber, Address = "파워이십일", RegistDate = DateTime.Now, Expire = new DateTime(2100, 12, 31), UserType = userType, RegistrationNumber = "" }; return(user); }
private UserAccountEF CreateSupervisorAccount(BasicRegistModel model) { var user = new UserAccountEF { FirstName = model.FirstName, LastName = model.LastName, Email = model.Email, UserName = model.Email, CompanyName = "파워이십일", NormalizedUserName = model.Email.ToUpper(), PhoneNumber = model.PhoneNumber, Address = "대전광역시 유성과 관평동 1359번지 한신에스메카 609호", RegistDate = DateTime.Now, Expire = DateTime.Now.AddMonths(1), UserType = RegisterType.Supervisor, RegistrationNumber = "", SignInConfirm = true }; return(user); }
//[HttpPost, Route("login"), AllowAnonymous] ////public async Task<IActionResult> Login([FromBody]JObject jo) //public async Task<IActionResult> Login() //{ // Console.WriteLine("call login~. No Parameter"); // //foreach (string key in Response.Headers.Keys) // //{ // // Console.WriteLine($"{key} : {Response.Headers[key]}"); // //} // //Response.Cookies.Append("babo", "you~"); // //if (jo == null) // // return NoContent(); // //return await ClaimsLogin(jo); // return Ok(); //} //private async Task<IActionResult> ClaimsLogin([FromBody]JObject jo) //{ // bool isUservalid = false; // LoginViewModel user = JsonConvert.DeserializeObject<LoginViewModel>(jo.ToString()); // if (ModelState.IsValid && isUservalid) // { // var claims = new List<Claim>(); // claims.Add(new Claim(ClaimTypes.Name, user.Email)); // var identity = new ClaimsIdentity( // claims, JwtBearerDefaults.AuthenticationScheme); // var principal = new ClaimsPrincipal(identity); // var props = new AuthenticationProperties(); // props.IsPersistent = user.RememberMe; // HttpContext.SignInAsync( // IdentityConstants.ApplicationScheme, // principal, props).Wait(); // string token = JasonWebTokenManager.GenerateToken(user.Email); // return Ok(new { Token = token }); // } // else // { // return BadRequest(); // } //} private async Task <IActionResult> OldLogin([FromBody] LoginModel user) { //[FromBody] //JObject jo = null; if (ModelState.IsValid) { if (string.IsNullOrEmpty(user.Email) || string.IsNullOrEmpty(user.Password)) { Console.WriteLine("Invalid User"); return(BadRequest()); } UserAccountEF account = await _userManager.FindByEmailAsync(user.Email); if (account == null) { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).UserNotFound(); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } else if (account.SignInConfirm == false) { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).SignInNotConfirm(user.Email); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } Microsoft.AspNetCore.Identity.SignInResult signResult = await _signInManager.PasswordSignInAsync(user.Email, user.Password, true, false); if (signResult.Succeeded) { var accountUser = await _userManager.FindByEmailAsync(user.Email); IList <Claim> claims = await _userManager.GetClaimsAsync(accountUser); claims.Add(new Claim(ClaimTypes.NameIdentifier, accountUser.Id)); claims.Add(new Claim(ClaimTypes.Name, accountUser.FirstName + accountUser.LastName)); string roleType = ""; string id = ""; if (accountUser.UserType == RegisterType.Aggregator) { roleType = UserRoleTypes.Aggregator; var agg = _accountContext.VwAggregatorusers.FirstOrDefault(x => x.UserId == accountUser.Id); id = agg.AggGroupId; claims.Add(new Claim(UserClaimTypes.AggregatorGroupIdentifier, agg.AggGroupId)); //claims.Add(new Claim("", )) claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.Aggregator)); if (string.IsNullOrEmpty(agg.AggName) == false) { claims.Add(new Claim(UserClaimTypes.AggregatorGroupName, agg.AggName)); } } else if (accountUser.UserType == RegisterType.Contrator) { var contractor = _accountContext.VwContractorusers.FirstOrDefault(x => x.UserId == accountUser.Id); id = accountUser.Id; claims.Add(new Claim(UserClaimTypes.AggregatorGroupIdentifier, contractor.AggGroupId)); claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.Contractor)); roleType = UserRoleTypes.Contractor; if (string.IsNullOrEmpty(contractor.AggName) == false) { claims.Add(new Claim(UserClaimTypes.AggregatorGroupName, contractor.AggName)); } } else if (accountUser.UserType == RegisterType.Supervisor) { claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.Supervisor)); roleType = UserRoleTypes.Supervisor; } var siteids = ControlHelper.GetAvaliableRccCodes(_accountContext, roleType, id); claims.Add(new Claim(SiteIdsByRccClaim, siteids)); string token = JasonWebTokenManager.GenerateToken(user.Email, claims); string result = JasonWebTokenManager.ValidateToken(user.Email, token, ClaimTypes.NameIdentifier); //if (string.IsNullOrEmpty(returnUrl) == false) //{ // Console.WriteLine("returnurl:" + returnUrl); // return Redirect(returnUrl); //} Console.WriteLine("Log-in Success: " + user.Email); return(Ok(new { Result = signResult, Token = token, User = accountUser })); } else { Console.WriteLine($"Login Failed"); //if (signResult.RequiresTwoFactor) //{ // return RedirectToAction("act", new { ReturnUrl = returnUrl, RememberMe = user.RememberMe }); //} if (signResult.IsLockedOut) { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).UserLockoutEnabled(); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } else { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).PasswordMismatch(); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } } } else { Console.WriteLine("Invalid LoginViewModel"); return(Ok(StatusCodes.Status406NotAcceptable)); } }
private async Task <string> GenerateAccessTokenAsync(UserAccountEF userAccount) { var accountUser = userAccount; IList <Claim> claims = await _userManager.GetClaimsAsync(accountUser); claims.Add(new Claim(ClaimTypes.NameIdentifier, accountUser.Id)); claims.Add(new Claim(ClaimTypes.Name, accountUser.FirstName + accountUser.LastName)); string roleType = ""; string id = ""; if (accountUser.UserType == RegisterType.Aggregator) { roleType = UserRoleTypes.Aggregator; var agg = _accountContext.VwAggregatorusers.FirstOrDefault(x => x.UserId == accountUser.Id); id = agg.AggGroupId; claims.Add(new Claim(UserClaimTypes.AggregatorGroupIdentifier, agg.AggGroupId)); //claims.Add(new Claim("", )) claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.Aggregator)); if (string.IsNullOrEmpty(agg.AggName) == false) { claims.Add(new Claim(UserClaimTypes.AggregatorGroupName, agg.AggName)); } } else if (accountUser.UserType == RegisterType.Contrator) { var contractor = _accountContext.VwContractorusers.FirstOrDefault(x => x.UserId == accountUser.Id); id = accountUser.Id; claims.Add(new Claim(UserClaimTypes.AggregatorGroupIdentifier, contractor.AggGroupId)); claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.Contractor)); roleType = UserRoleTypes.Contractor; if (string.IsNullOrEmpty(contractor.AggName) == false) { claims.Add(new Claim(UserClaimTypes.AggregatorGroupName, contractor.AggName)); } } else if (accountUser.UserType == RegisterType.Supervisor) { claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.Supervisor)); roleType = UserRoleTypes.Supervisor; } else if (accountUser.UserType == RegisterType.AccountManager) { claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.AccountManager)); } else if (accountUser.UserType == RegisterType.Hubbub) { claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.HubbubUser)); } bool IsPlatformUser = accountUser.UserType == RegisterType.Supervisor || accountUser.UserType == RegisterType.Aggregator || accountUser.UserType == RegisterType.Contrator; if (IsPlatformUser) { var siteids = ControlHelper.GetAvaliableRccCodes(_accountContext, roleType, id); claims.Add(new Claim(UserClaimTypes.SiteIdsByRccClaim, siteids)); } string token = JasonWebTokenManager.GenerateToken(accountUser.Email, claims); return(token); }
//[HttpPost, Route("login"), AllowAnonymous] ////public async Task<IActionResult> Login([FromBody]JObject jo) //public async Task<IActionResult> Login() //{ // Console.WriteLine("call login~. No Parameter"); // //foreach (string key in Response.Headers.Keys) // //{ // // Console.WriteLine($"{key} : {Response.Headers[key]}"); // //} // //Response.Cookies.Append("babo", "you~"); // //if (jo == null) // // return NoContent(); // //return await ClaimsLogin(jo); // return Ok(); //} //private async Task<IActionResult> ClaimsLogin([FromBody]JObject jo) //{ // bool isUservalid = false; // LoginViewModel user = JsonConvert.DeserializeObject<LoginViewModel>(jo.ToString()); // if (ModelState.IsValid && isUservalid) // { // var claims = new List<Claim>(); // claims.Add(new Claim(ClaimTypes.Name, user.Email)); // var identity = new ClaimsIdentity( // claims, JwtBearerDefaults.AuthenticationScheme); // var principal = new ClaimsPrincipal(identity); // var props = new AuthenticationProperties(); // props.IsPersistent = user.RememberMe; // HttpContext.SignInAsync( // IdentityConstants.ApplicationScheme, // principal, props).Wait(); // string token = JasonWebTokenManager.GenerateToken(user.Email); // return Ok(new { Token = token }); // } // else // { // return BadRequest(); // } //} private async Task <IActionResult> OldLogin([FromBody] LoginModel user) { //[FromBody] //JObject jo = null; if (ModelState.IsValid) { if (string.IsNullOrEmpty(user.Email) || string.IsNullOrEmpty(user.Password)) { Console.WriteLine("Invalid User"); return(BadRequest()); } UserAccountEF account = await _userManager.FindByEmailAsync(user.Email); if (account == null) { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).UserNotFound(); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } else if (account.SignInConfirm == false) { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).SignInNotConfirm(user.Email); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } else if (account.Expire <= DateTime.Now) { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).Expired(); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } Microsoft.AspNetCore.Identity.SignInResult signResult = await _signInManager.PasswordSignInAsync(user.Email, user.Password, true, false); if (signResult.Succeeded) { var accountUser = await _userManager.FindByEmailAsync(user.Email); string token = await GenerateAccessTokenAsync(accountUser); string result = JasonWebTokenManager.ValidateToken(user.Email, token, ClaimTypes.NameIdentifier); string refreshToken = null; if (distributedCache.TryGetValue(user.Email, out refreshToken) == false) { refreshToken = JasonWebTokenManager.GenerateRefreshToken(user.Email); var cacheEntryOptions = new MemoryCacheEntryOptions() .SetSlidingExpiration(TimeSpan.FromDays(100)); distributedCache.Set(user.Email, refreshToken, cacheEntryOptions); } //if (string.IsNullOrEmpty(returnUrl) == false) //{ // Console.WriteLine("returnurl:" + returnUrl); // return Redirect(returnUrl); //} Console.WriteLine("Log-in Success: " + user.Email); return(Ok(new { Result = signResult, Token = token, RefreshToken = refreshToken, User = accountUser })); } else { Console.WriteLine($"Login Failed"); //if (signResult.RequiresTwoFactor) //{ // return RedirectToAction("act", new { ReturnUrl = returnUrl, RememberMe = user.RememberMe }); //} if (signResult.IsLockedOut) { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).UserLockoutEnabled(); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } else { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).PasswordMismatch(); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } } } else { Console.WriteLine("Invalid LoginViewModel"); return(Ok(StatusCodes.Status406NotAcceptable)); } }
//[HttpPost, Route("login"), AllowAnonymous] ////public async Task<IActionResult> Login([FromBody]JObject jo) //public async Task<IActionResult> Login() //{ // Console.WriteLine("call login~. No Parameter"); // //foreach (string key in Response.Headers.Keys) // //{ // // Console.WriteLine($"{key} : {Response.Headers[key]}"); // //} // //Response.Cookies.Append("babo", "you~"); // //if (jo == null) // // return NoContent(); // //return await ClaimsLogin(jo); // return Ok(); //} //private async Task<IActionResult> ClaimsLogin([FromBody]JObject jo) //{ // bool isUservalid = false; // LoginViewModel user = JsonConvert.DeserializeObject<LoginViewModel>(jo.ToString()); // if (ModelState.IsValid && isUservalid) // { // var claims = new List<Claim>(); // claims.Add(new Claim(ClaimTypes.Name, user.Email)); // var identity = new ClaimsIdentity( // claims, JwtBearerDefaults.AuthenticationScheme); // var principal = new ClaimsPrincipal(identity); // var props = new AuthenticationProperties(); // props.IsPersistent = user.RememberMe; // HttpContext.SignInAsync( // IdentityConstants.ApplicationScheme, // principal, props).Wait(); // string token = JasonWebTokenManager.GenerateToken(user.Email); // return Ok(new { Token = token }); // } // else // { // return BadRequest(); // } //} private async Task <IActionResult> OldLogin([FromBody] LoginModel jo) { //[FromBody] //JObject jo = null; Console.WriteLine($"Try Logging... {jo}"); //UserAccount user = await _userManager.FindByNameAsync(input_user.Email); if (ModelState.IsValid) { Console.WriteLine($"Model State is Valid"); Console.WriteLine(jo.ToString()); UserAccountEF account = await _userManager.FindByEmailAsync(jo.Email); if (account == null) { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).UserNotFound(); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } else if (account.SignInConfirm == false) { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).SignInNotConfirm(jo.Email); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } Microsoft.AspNetCore.Identity.SignInResult signResult = await _signInManager.PasswordSignInAsync(jo.Email, jo.Password, true, false); if (signResult.Succeeded) { using (NHibernate.ISession session = _accountContext.SessionFactory.OpenSession()) { var accountUser = await _userManager.FindByEmailAsync(jo.Email); IList <Claim> claims = await _userManager.GetClaimsAsync(accountUser); claims.Add(new Claim(ClaimTypes.NameIdentifier, accountUser.Id)); claims.Add(new Claim(ClaimTypes.Email, accountUser.Email)); claims.Add(new Claim(ClaimTypes.Name, accountUser.FirstName + accountUser.LastName)); if (accountUser.UserType == RegisterType.Aggregator) { VwAggregatoruser agg = await session.GetAsync <VwAggregatoruser>(accountUser.Id); claims.Add(new Claim(UserClaimTypes.AggregatorGroupIdentifier, agg.AggGroupId)); claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.Aggregator)); if (string.IsNullOrEmpty(agg.AggName) == false) { claims.Add(new Claim(UserClaimTypes.AggregatorGroupName, agg.AggName)); } //var agg = _accountContext.VwAggregatorusers.FirstOrDefault(x => x.UserId == accountUser.Id); //claims.Add(new Claim(UserClaimTypes.AggregatorGroupIdentifier, agg.AggGroupId)); //claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.Aggregator)); //if (string.IsNullOrEmpty(agg.AggName) == false) // claims.Add(new Claim(UserClaimTypes.AggregatorGroupName, agg.AggName)); } else if (accountUser.UserType == RegisterType.Contrator) { VwContractoruser con = await session.GetAsync <VwContractoruser>(accountUser.Id); claims.Add(new Claim(UserClaimTypes.AggregatorGroupIdentifier, con.AggGroupId)); claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.Contractor)); if (string.IsNullOrEmpty(con.AggName) == false) { claims.Add(new Claim(UserClaimTypes.AggregatorGroupName, con.AggName)); } //var contractor = _accountContext.VwContractorusers.FirstOrDefault(x => x.UserId == accountUser.Id); //claims.Add(new Claim(UserClaimTypes.AggregatorGroupIdentifier, contractor.AggGroupId)); //claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.Contractor)); //if (string.IsNullOrEmpty(contractor.AggName) == false) // claims.Add(new Claim(UserClaimTypes.AggregatorGroupName, contractor.AggName)); } else if (accountUser.UserType == RegisterType.Supervisor) { claims.Add(new Claim(ClaimTypes.Role, UserRoleTypes.Supervisor)); } string token = JasonWebTokenManager.GenerateToken(jo.Email, UserClaimTypes.Issuer, claims); //if (string.IsNullOrEmpty(returnUrl) == false) //{ // Console.WriteLine("returnurl:" + returnUrl); // return Redirect(returnUrl); //} Console.WriteLine("Log-in Success: " + jo.Email); return(Ok(new { Result = signResult, Token = token, User = accountUser })); } } else { Console.WriteLine($"Login Failed"); //if (signResult.RequiresTwoFactor) //{ // return RedirectToAction("act", new { ReturnUrl = returnUrl, RememberMe = user.RememberMe }); //} if (signResult.IsLockedOut) { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).UserLockoutEnabled(); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } else { IdentityError error = (_userManager.ErrorDescriber as LocalizedIdentityErrorDescriber).PasswordMismatch(); IdentityResult _result = IdentityResult.Failed(error); return(BadRequest(new { Result = _result })); } } } else { Console.WriteLine("Invalid LoginViewModel"); return(Ok(StatusCodes.Status406NotAcceptable)); } }