public override void Execute(IRequest req, IResponse res, object requestDto) { // Get the correct repository to authenticate against var repositories = HostContext.TryResolve <MyUserRepository[]>(); MyUserRepository repository = null; if (repositories != null) { repository = repositories.FirstOrDefault(r => r.Name == _repositoryName); } // Determine if request has basic authentication var authorization = req.GetHeader(HttpHeaders.Authorization); if (repository != null && !String.IsNullOrEmpty(authorization) && authorization.StartsWith("basic", StringComparison.OrdinalIgnoreCase)) { // Decode the credentials var credentials = Encoding.UTF8.GetString(Convert.FromBase64String(authorization.Substring(6))).Split(':'); if (credentials.Length == 2) { // Try and match the credentials to a user var password = repository.Users.GetValueOrDefault(credentials[0]); if (password != null && password == credentials[1]) { // Credentials are valid return; } } } // User requires to authenticate res.StatusCode = (int)HttpStatusCode.Unauthorized; res.AddHeader(HttpHeaders.WwwAuthenticate, string.Format("basic realm=\"{0}\"", _realmName)); res.EndRequest(); }
public UnitOfWork(BulkyBook_DBEntities db) { _db = db; Categories = new CategoryRepository(_db); CoverTypes = new CoverTypeRepository(_db); Products = new ProductRepository(_db); Companies = new CompanyRepository(_db); MyUsers = new MyUserRepository(_db); ShoppingCarts = new ShoppingCartRepository(_db); OrderDetails = new OrderDetailRepository(_db); OrderHeaders = new OrderHeaderRepository(_db); }
public IHttpActionResult Authenticate(ReqModel user) { ResModel userResponse = new ResModel(); IHttpActionResult response; HttpResponseMessage responseMsg = new HttpResponseMessage(); bool isUsernamePasswordValid = false; if (user != null) { MyUserRepository repo = new MyUserRepository(); MyUser myuser = repo.loadUserByUserNamePassword(user.Username, user.Password); if (myuser.Name == user.Username && myuser.Password == user.Password) { isUsernamePasswordValid = true; } else { isUsernamePasswordValid = false; } } //if credentials are valid if (isUsernamePasswordValid) { string token = createToken(user.Username); //return the token return(Ok <string>(token)); } else { // if credentials are not valid send unauthorized status code in response userResponse.responseMsg.StatusCode = HttpStatusCode.Unauthorized; response = ResponseMessage(userResponse.responseMsg); return(response); } }