public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return(View(model)); } //send a remote server login request MyRemoteServices.AgentEndpointPortClient aepClient = new MyRemoteServices.AgentEndpointPortClient(); MyRemoteServices.agentLoginRequest rmsRequest = new MyRemoteServices.agentLoginRequest { userName = model.UserName, password = model.Password }; MyRemoteServices.agentLoginResponse rmsRespone = aepClient.agentLogin(rmsRequest); //if (rmsRespone.responseWrapper.success) if (rmsRespone.responseWrapper.success) { //local login var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, false, shouldLockout : false); switch (result) { case SignInStatus.Success: { //synchronization string syncMessage = SynchronizationHelper.DoSynchronization(rmsRespone.responseWrapper.syncObj); TempData["success"] = syncMessage; return(RedirectToAction("AgentPage", "Agent")); } case SignInStatus.Failure: default: ModelState.AddModelError("", "Invalid login attempt."); return(View(model)); } } else { //ModelState.AddModelError("", rmsRespone.responseWrapper.message); return(View(model)); } }