Esempio n. 1
0
        public IHttpResponse DoLogin(IHttpRequest request)
        {
            //1. Validate input
            var userName = request.FormData["username"]?.ToString().Trim() ?? string.Empty;
            var password = request.FormData["password"]?.ToString().Trim() ?? string.Empty;

            if (string.IsNullOrWhiteSpace(userName) ||
                string.IsNullOrWhiteSpace(password))
            {
                return(this.BadRequestError("Please enter username and password!"));
            }

            var hashedPasssword = this.hashService.Hash(password);
            var user            = this.db.Users.FirstOrDefault(x =>
                                                               x.UserName == userName && x.Password == hashedPasssword);

            if (user == null)
            {
                return(this.BadRequestError("Invalid username or password!"));
            }

            var userContent = this.cookieService.GetUserCookie(user.UserName);
            var response    = new RedirectResult("/");

            response.AddCookie(new HttpCookie(".auth-cakes", userContent, 7)
            {
                HttpOnly = true
            });
            return(response);
        }
        public IHttpResponse Logout(IHttpRequest request)
        {
            if (!request.Cookies.ContainsCookie(".auth-cakes"))
            {
                return(new RedirectResult("/"));
            }

            var cookie = request.Cookies.GetCookie(".auth-cakes");

            cookie.Delete();
            var response = new RedirectResult("/");

            response.AddCookie(cookie);
            return(response);
        }
Esempio n. 3
0
        public IHttpResponse LogOf(IHttpRequest request)
        {
            string cookieValue = request.Cookies.GetCookie(loginCookieName).Value;

            if (cookieValue is null)
            {
                return(this.ControllerError($"No user was loged in at the moment", "Home", "Home"));
            }
            var cookieDelete = new HttpCookie(loginCookieName, cookieValue, true, -1, true, false);


            IHttpResponse redirectToHome = new RedirectResult("/");

            redirectToHome.AddCookie(cookieDelete);
            return(redirectToHome);
        }
Esempio n. 4
0
        public IHttpResponse Logout()
        {
            if (!this.Request.Cookies.ContainsCookie(".auth-cakes"))
            {
                return new RedirectResult("/");
            }

            var cookie = this.Request.Cookies.GetCookie(".auth-cakes");

            cookie.Delete();

            var response = new RedirectResult("/");
            response.AddCookie(cookie);

            return response;
        }
Esempio n. 5
0
        public IHttpResponse PostLoginView(IHttpRequest request)
        {
            var usernameOrEmail = request.FormData["usernameOrEmail"].ToString().Trim();

            var password = request.FormData["password"].ToString();

            var isEmail = Regex.IsMatch(WebUtility.UrlDecode(usernameOrEmail), EmailRegex);

            var isUsername = Regex.IsMatch(usernameOrEmail, UsernameRegex);

            if ((!isEmail && !isUsername) || usernameOrEmail.Length < UsernameOrEmailLength)
            {
                return(this.ErrorView(InvalidCredentials));
            }

            var hashedPassword = this.HashService.Hash(password);

            var user = this.Db.Users.FirstOrDefault(
                u =>
                (u.Username == usernameOrEmail && u.Password == hashedPassword) ||
                (u.Email == usernameOrEmail && u.Password == hashedPassword));

            if (user == null)
            {
                return(this.ErrorView(InvalidUsernameEmailOrPassword));
            }

            var cookieContent = this.UserCookieService.GetUserCookie(usernameOrEmail);

            //request.Session.AddParamter("username", cookieContent);

            var cookie = new HttpCookie(".auth-cookie", cookieContent);

            cookie.SetPath("/");

            var response = new RedirectResult("/");

            response.AddCookie(cookie);

            return(response);
        }
Esempio n. 6
0
        public IHttpResponse DoLogin()
        {
            var userName = this.Request.FormData["username"].ToString().Trim();

            var password = this.Request.FormData["password"].ToString();

            var hashedPassword = this._hashService.Hash(password);

            var user = this.Db.Users.FirstOrDefault(u => u.Username == userName && u.Password == hashedPassword);

            if (user == null)
            {
                return this.BadRequestError("Invalid username and password");
            }
            
            var response = new RedirectResult("/");
            var userCookie = this._userCookieService.GetUserCookie(user.Username);
            response.AddCookie(new HttpCookie(".auth-cakes", userCookie, 7));

            return response;
        }