public override void OnAuthorization(HttpActionContext actionContext)
        {
            Domain.Abstract.IUserRepository userRepository = actionContext.Request.GetDependencyScope()
                                                             .GetService(typeof(Domain.Abstract.IUserRepository)) as Domain.Abstract.IUserRepository;

            if (actionContext.Request.Headers.Authorization == null)
            {
                actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);
            }
            else
            {
                string[] usernamePasswordArray = Helpers.SecurityHelper
                                                 .GetDecodedUserNameAndPassordFromAuthorizationHeader(actionContext.Request.Headers.Authorization.Parameter);

                if (userRepository.ClientKeyIsValid(usernamePasswordArray[0], usernamePasswordArray[1]))
                {
                    Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(usernamePasswordArray[0]), null);
                }
                else
                {
                    actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
                    {
                        Content      = new StringContent("[{\"Error\":\"Unauthorized\"}]", Encoding.UTF8, "application/json"),
                        ReasonPhrase = "Authentication failed"
                    };
                }
            }
        }
Ejemplo n.º 2
0
 public UsersController(Domain.Abstract.IUserRepository userRepository)
 {
     _userRepository = userRepository;
 }
Ejemplo n.º 3
0
 public UserController(Domain.Abstract.IUserRepository repo)
 {
     _userRepository = repo;
 }