public async Task <IActionResult> Login(LoginViewModel loginViewModel, string returnUrl) { if (!ModelState.IsValid) { return(View(loginViewModel)); } var bankService = new BankServiceClient(); try { var serviceResponse = await bankService.AuthenticateUserAsync(loginViewModel.UserName, loginViewModel.Password); if (serviceResponse) { //var claims = new List<Claim>{ new Claim(ClaimTypes.Name, loginViewModel.UserName) }; //var claimsIdentity = new ClaimsIdentity(claims); //var claimsPrinciple = new ClaimsPrincipal(claimsIdentity); //await HttpContext.Authentication.SignInAsync("Cookies", claimsPrinciple); var sessionId = await bankService.CreateSessionAsync(loginViewModel.UserName); await HttpContext.Authentication.SignInAsync(sessionId); if (Url.IsLocalUrl(returnUrl)) { return(Redirect(returnUrl)); } return(Redirect("/")); } } catch (FaultException exception) { ViewData["ReturnUrl"] = returnUrl; ViewData["Error"] = exception.Message; return(View()); } return(View()); }