Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }