Ejemplo n.º 1
0
        public IHttpResponse PostLogin(DoLoginViewModel model)
        {
            model.Password = this.hashService.Compute256Hash(model.Password);

            if (!(this.Context.Users.Any(user =>
                                         (user.Username == model.UsernameOrEmail.Trim() || user.Email == model.UsernameOrEmail.Trim()) &&
                                         user.Password == model.Password)))
            {
                GetLoginViewModel viewModel = new GetLoginViewModel()
                {
                    ErrorMessage = InvalidLoginInformationMessage
                };

                return(this.View("Login", HttpResponseStatusCode.BadRequest, viewModel));
            }
            else
            {
                string username =
                    this.Context
                    .Users
                    .Where(user => user.Username == model.UsernameOrEmail.Trim() || user.Email == model.UsernameOrEmail.Trim())
                    .First()
                    .Username;

                var viewModel = model.To <DoLoginViewModel>();

                HttpCookie cookie = new HttpCookie(AuthenticationCookieKey, this.UserCookieService.EncryptString(username, EncryptKey));

                this.Request.Cookies.Add(cookie);
                this.Response.Cookies.Add(cookie);

                return(this.View("Logged", HttpResponseStatusCode.Ok, viewModel));
            }
        }
Ejemplo n.º 2
0
        public IHttpResponse GetLogin()
        {
            if (this.Request.Cookies.ContainsCookie(AuthenticationCookieKey))
            {
                string cookieValue = this.Request.Cookies.GetCookie(AuthenticationCookieKey).Value;
                string username    = this.UserCookieService.DecryptString(cookieValue, EncryptKey);

                Dictionary <string, string> loggedInReplaceParameters = new Dictionary <string, string>()
                {
                    { "{{{name}}}", username }
                };

                return(this.View("Logged", HttpResponseStatusCode.Ok, loggedInReplaceParameters));
            }

            GetLoginViewModel viewModel = new GetLoginViewModel()
            {
                ErrorMessage = string.Empty
            };

            return(this.View("Login", HttpResponseStatusCode.Ok, viewModel));
        }