public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return(View(model)); } var user = await _authenticationService.AuthenticateAsync(model.Username, model.Password); if (user != null) { // Ensure stages can be created await _stageClient.EnsureOwnerCreated(user.Username); // Login var claims = new List <Claim>(); claims.Add(new Claim(ClaimTypes.NameIdentifier, user.Username)); claims.Add(new Claim(ClaimTypes.Name, user.Username)); claims.Add(new Claim(ClaimTypes.Email, user.EmailAddress)); var identity = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie); var authenticationManager = Request.GetOwinContext().Authentication; authenticationManager.SignIn(identity); return(RedirectToLocal(returnUrl)); } SetUiMessage(UiMessageTypes.Error, "The username or password is invalid."); return(RedirectToAction("Login", new { returnUrl = returnUrl })); }