public HttpResponseMessage Post(LoginModel loginModel) { if (ModelState.IsValid) { var MOC = new WinStarSoap.MobileOffersClient(); var winstarDataModel = new WinstarDataModel { UserName = loginModel.UserName, Password = loginModel.Password }; int responseValue = MOC.validateUser( winstarDataModel.UserName, winstarDataModel.Password, winstarDataModel.Facility, winstarDataModel.IpAddress); //SUCCESS if (responseValue == 0) { IUserModel currentUser = SecurityHelper.GetWinstarPatron(winstarDataModel); return(Request.CreateResponse(HttpStatusCode.OK, currentUser.ToAuthenticatedUser(winstarDataModel))); } throw ThrowIfError(responseValue, HttpStatusCode.BadRequest, errors); } throw ThrowIfError(ERROR_INVALID_LOGIN, HttpStatusCode.BadRequest, errors, ModelState); }
public HttpResponseMessage PostPassword(UpdatePatronPassword dataModel) { if (ModelState.IsValid) { var MOC = new WinStarSoap.MobileOffersClient(); int responseValue = MOC.resetPatronPassword(dataModel.UserName, dataModel.PatronNumber, dataModel.Pin, ConfigurationManager.AppSettings["Facility"], HttpContext.Current.Request.UserHostAddress, dataModel.NewPassword); if (responseValue > 0) { throw ThrowIfError(responseValue, HttpStatusCode.BadRequest, errors); } var winstarDataModel = new WinstarDataModel { UserName = dataModel.UserName, Password = dataModel.NewPassword }; IUserModel currentUser = SecurityHelper.GetWinstarPatron(winstarDataModel); return(Request.CreateResponse(HttpStatusCode.OK, currentUser.ToAuthenticatedUser(WinstarDataModel))); } throw ThrowIfError(ERROR_GENERIC, HttpStatusCode.BadRequest, errors, ModelState); }
public HttpResponseMessage Post(RegistrationModel dataModel) { if (ModelState.IsValid) { var MOC = new WinStarSoap.MobileOffersClient(); var winstarDataModel = new WinstarDataModel { UserName = dataModel.UserName, Password = dataModel.Password }; int responseValue = MOC.createAccount( winstarDataModel.UserName, winstarDataModel.Password, dataModel.PatronNumber, dataModel.Pin, winstarDataModel.Facility, winstarDataModel.IpAddress); //SUCCESS if (responseValue == 0) { IUserModel currentUser = SecurityHelper.GetWinstarPatron(winstarDataModel); return(Request.CreateResponse(HttpStatusCode.OK, currentUser.ToAuthenticatedUser(winstarDataModel))); } throw ThrowIfError(responseValue, HttpStatusCode.BadRequest, errors); } throw ThrowIfError(ERROR_GENERIC, HttpStatusCode.BadRequest, errors, ModelState); }
public static IWinstarDataModel UnPackAuthToken(String token, out DateTime timeStampCreated, out DateTime timeStampExpired) { var decryptedToken = Decrypt(token); var credentialBytes = Convert.FromBase64String(decryptedToken); var credentials = Encoding.ASCII.GetString(credentialBytes); var credentialParts = credentials.Split(AuthorizationHeaderSeparator); /* * TOKENS SHOULD HAVE 6 PARTS: * 0: USER NAME * 1: PASSWORD * 2: FACILITY * 3: IP ADDRESS * 4: TOKEN CREATED TIME STAMP * 5: TOKEN EXPIRATION TIMESTAMP */ if (credentialParts.Length == 6) { IWinstarDataModel winstarDataModel = new WinstarDataModel(); //0: USER NAME winstarDataModel.UserName = credentialParts[0].Trim(); //1: PASSWORD winstarDataModel.Password = credentialParts[1].Trim(); //2: FACILITY winstarDataModel.Facility = credentialParts[2].Trim(); //3: IP ADDRESS winstarDataModel.IpAddress = credentialParts[3].Trim(); //4: TOKEN CREATED TIME STAMP long ticks; long.TryParse(credentialParts[4].Trim(), out ticks); //TODO: DETERMINE AMOUNT OF TIME SINCE TOKEN WAS CREATED TO SEE IF IT'S STILL VALID. timeStampCreated = new DateTime(ticks); //5: TOKEN EXPIRATION TIMESTAMP long ticks2; long.TryParse(credentialParts[5].Trim(), out ticks2); //TODO: DETERMINE AMOUNT OF TIME SINCE TOKEN WAS CREATED TO SEE IF IT'S STILL VALID. timeStampExpired = new DateTime(ticks2); return(winstarDataModel); } timeStampCreated = new DateTime(); timeStampExpired = new DateTime(); return(null); }