public override void OnAuthorization(HttpActionContext actionContext)
        {
            if (actionContext.Request.Headers.Authorization == null)
            {
                actionContext.Response = actionContext.Request.CreateResponse(System.Net.HttpStatusCode.Unauthorized);
            }
            else
            {
                string token = actionContext.Request.Headers.Authorization.Parameter;

                string decodedToken = Encoding.UTF8.GetString(Convert.FromBase64String(token));

                string        username = decodedToken.Split(':')[0];
                string        password = decodedToken.Split(':')[1];
                AirBnbContext context  = new AirBnbContext();
                User          user     = context.Users.Where(x => x.UserName == username && x.Password == password).FirstOrDefault();
                if (user != null)
                {
                    string[] roles = new string[1];
                    roles[0] = user.Role.ToString();

                    Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(username), roles);
                }
                else
                {
                    actionContext.Response = actionContext.Request.CreateResponse(System.Net.HttpStatusCode.Unauthorized);
                }
            }
        }
示例#2
0
 public static bool LogIn(string username, string password)
 {
     using (AirBnbContext context = new AirBnbContext())
     {
         return(context.Users.Any(x => x.UserName == username && x.Password == password));
     }
 }
 public ReservationController()
 {
     context = AirBnbContext.Instance;
 }
 public ApartmentController()
 {
     context = AirBnbContext.Instance;
 }
 public UserController()
 {
     context = AirBnbContext.Instance;
 }
 public AmenitieController()
 {
     context = AirBnbContext.Instance;
 }