public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
        {
            // Return BadRequest if request is null
            if (WebOperationContext.Current == null)
            {
                throw new FaultException <UnAuthorisedException>(new UnAuthorisedException(), new FaultReason("User Unauthorised"));
            }
            // Get Token from header
            var token = WebOperationContext.Current.IncomingRequest.Headers["AUTH_TOKEN"];

            // Validate the Token
            ITokenProcess tokenBuilder = BusinessFactory.GetTokenProcess();

            if (!tokenBuilder.IsValid(token))
            {
                throw new FaultException <UnAuthorisedException>(new UnAuthorisedException(), new FaultReason("User Unauthorised"));
            }
            UserDTO user = BusinessFactory.GetUserProcess().GetUser(token);

            if (user == null)
            {
                throw new FaultException <UnAuthorisedException>(new UnAuthorisedException(), new FaultReason("User Unauthorised"));
            }
            // Add User ids to the header so the service has them if needed
            WebOperationContext.Current.IncomingRequest.Headers.Add("UserName", user.UserName);
            WebOperationContext.Current.IncomingRequest.Headers.Add("UserId", user.UserId.ToString());
            return(null);
        }
Example #2
0
        public AuthenticateResultDTO Authenticate(Credentials credentials)
        {
            AuthenticateResultDTO result       = new AuthenticateResultDTO();
            IAuthenticate         authenticate = BusinessFactory.GetAuthentication();

            if (authenticate.IsValid(credentials))
            {
                result.IsAuthenticated = true;
                result.UserId          = BusinessFactory.GetUserProcess().GetUser(credentials).UserId;
                result.Token           = authenticate.BuildToken(credentials);
            }
            else
            {
                result.IsAuthenticated = false;
                result.ErrorMessage    = "Invalid username or password.";
            }
            return(result);
        }
 public void Register(UserDTO user)
 {
     BusinessFactory.GetUserProcess().Create(user);
 }
 public List <TransactionDTO> GetTransactions(TransactionSearchCriteriaDTO searchCriteria)
 {
     return(BusinessFactory.GetUserProcess().GetTransactions(searchCriteria));
 }
 public UserValidationDTO ValidateUser(UserDTO user)
 {
     return(BusinessFactory.GetUserProcess().ValidateUser(user));
 }