public async Task<HttpResponseMessage> Post(LoginModel loginModel) { HttpResponse response = HttpContext.Current.Response; if (ModelState.IsValid) { AccountModel accountModel = await _authenticationService.Login(response, loginModel); return Request.CreateResponse(HttpStatusCode.OK); } return Request.CreateResponse(HttpStatusCode.Forbidden); }
public async Task<AccountModel> Login(HttpResponse httpResponse, LoginModel loginModel) { AccountModel accountModel = await _accountService.Get(loginModel.Login, loginModel.Password); if (accountModel != null) { var principalModel = new CustomPrincipalSerializeModel { FirstName = accountModel.FirstName, LastName = accountModel.LastName, UserId = accountModel.AccountId, Roles = accountModel.Roles.Select(role => role.Name).ToArray(), Login = accountModel.Login }; ProlongateUserSession(httpResponse, principalModel); } return accountModel; }