Exemplo n.º 1
0
        /// <summary>
        /// Occurs when a security module has established the identity of the user
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Application_PostAuthenticateRequest(object sender, EventArgs e)
        {
            HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];

            if (authCookie != null)
            {
                FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

                JavaScriptSerializer serializer = new JavaScriptSerializer();

                UserPrincipalSerializeModel serializeUser = serializer.Deserialize <UserPrincipalSerializeModel>(authTicket.UserData);
                _logger.Debug($"authTicket: { authTicket.UserData }");

                if (serializeUser != null)
                {
                    User user = new User
                    {
                        Id       = serializeUser.Id,
                        Login    = serializeUser.Login,
                        Email    = serializeUser.Email,
                        UserRole = serializeUser.UserRole
                    };

                    _logger.Debug($"User: id = { user.Id }, login = { user.Login }, e-mail = { user.Email }, role = { user.UserRole }");

                    CurrentUser newUser = new CurrentUser(user, serializeUser.UserProfileId, serializeUser.PriceLevelId);

                    _logger.Debug($"User Data: ProfileId = { serializeUser.UserProfileId }, price level = { serializeUser.PriceLevelId }");

                    HttpContext.Current.User = newUser;
                }
            }
        }
Exemplo n.º 2
0
        public HttpResponseMessage Login(LoginBindingModel model)
        {
            var user = repository.FindByPredicate(u => u.Login == model.Login && u.Password == model.Password);

            if (ReferenceEquals(user, null))
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }

            UserPrincipalSerializeModel serializeModel = new UserPrincipalSerializeModel();

            serializeModel.Login = user.Login;

            JavaScriptSerializer serializer = new JavaScriptSerializer();

            string userData = serializer.Serialize(serializeModel);

            FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
                1,
                model.Login,
                DateTime.Now,
                DateTime.Now.AddDays(1),
                false,
                userData);

            string encTicket = FormsAuthentication.Encrypt(authTicket);
            var    cookie    = new CookieHeaderValue(FormsAuthentication.FormsCookieName, encTicket);

            response = Request.CreateResponse(HttpStatusCode.OK);
            response.Headers.AddCookies(new CookieHeaderValue[] { cookie });
            return(response);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Get HttpCookies for authentication
        /// </summary>
        /// <param name="user"></param>
        /// <param name="isPersistent"></param>
        /// <param name="expires"></param>
        private HttpCookie GetAuthCookies(UserPrincipalSerializeModel user, bool isPersistent, int expires = 1440)
        {
            if (user == null)
            {
                throw new ArgumentException("user");
            }

            JavaScriptSerializer serializer = new JavaScriptSerializer();

            string cookiesData = serializer.Serialize(user);

            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
                1,
                user.Login,
                DateTime.Now,
                DateTime.Now.AddMinutes(expires),
                isPersistent,
                cookiesData,
                FormsAuthentication.FormsCookiePath);

            string encTicket = FormsAuthentication.Encrypt(ticket);
            var    cookies   = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);

            if (ticket.IsPersistent)
            {
                cookies.Expires = ticket.Expiration;
            }

            return(cookies);
        }
Exemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="useridentity">User login or email</param>
        /// <param name="password"></param>
        /// <param name="redirect"></param>
        public void LogIn(string useridentity, string password, HttpContext context, bool redirect)
        {
            if (useridentity == null)
            {
                throw new ArgumentException("useridentity");
            }

            if (password == null)
            {
                throw new ArgumentException("password");
            }

            User user = GetUser(useridentity);

            if (user != null)
            {
                if (!user.Password.Equals(PasswordEncryptor.GetHashString(password), StringComparison.OrdinalIgnoreCase))
                {
                    throw new UserValidationException("Неверный пароль", "Password");
                }

                UserData userData;
                using (var repository = _factory.GetUserDataRepository())
                {
                    userData = repository.FirstOrDefault(u => u.User.Id == user.Id);
                }

                UserPrincipalSerializeModel userPrincipal = new UserPrincipalSerializeModel
                {
                    Id            = user.Id,
                    Login         = user.Login,
                    Email         = user.Email,
                    UserRole      = user.UserRole,
                    UserProfileId = userData.Id,
                    PriceLevelId  = userData.PriceLevelId
                };
                if (!user.ConfirmedEmail)
                {
                    throw new UserValidationException("Не подтвержден email", "");
                }

                context.Response.Cookies.Add(GetAuthCookies(userPrincipal, redirect));
            }
            else
            {
                throw new UserValidationException("Неверный логин", "Useridentity");
            }
            //return new CurrentUser(user);
        }
Exemplo n.º 5
0
        protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
        {
            HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];

            if (authCookie != null && authCookie.Value != "")
            {
                FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

                JavaScriptSerializer serializer = new JavaScriptSerializer();

                UserPrincipalSerializeModel serializeModel = serializer.Deserialize <UserPrincipalSerializeModel>(authTicket.UserData);

                UserPrincipal newUser = new UserPrincipal(authTicket.Name);
                newUser.Login = serializeModel.Login;

                HttpContext.Current.User = newUser;
            }
        }
Exemplo n.º 6
0
        public ActionResult Index(string email, string pass)
        {
            var user = database.Accounts.Where(u => u.Email == email).FirstOrDefault();

            if (user != null)
            {
                string hashstring   = Cryptography.HashPassword(pass);
                string HashPassword = Cryptography.HashString(hashstring, user.Salt);
                if (user.HashPassword == HashPassword)
                {
                    UserPrincipalSerializeModel serializeModel = new UserPrincipalSerializeModel();
                    serializeModel.Id        = user.ID;
                    serializeModel.FirstName = user.FirstName;
                    serializeModel.LastName  = user.LastName;

                    JavaScriptSerializer serializer = new JavaScriptSerializer();

                    string userData = serializer.Serialize(serializeModel);

                    FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
                        1,
                        email,
                        DateTime.Now,
                        DateTime.Now.AddMinutes(15),
                        false,
                        userData);

                    string     encTicket = FormsAuthentication.Encrypt(authTicket);
                    HttpCookie faCookie  = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
                    Response.Cookies.Add(faCookie);

                    return(RedirectToAction("Index", "admin"));
                }
                else
                {
                    return(RedirectToAction("Index", "account"));
                }
            }
            else
            {
                return(RedirectToAction("Index", "account"));
            }
        }
Exemplo n.º 7
0
        public ActionResult Login(LoginUserViewModel userlog)
        {
            if (userlog.UserName != null && userlog.Password != null)
            {
                var user = this._userService.LoginUser(userlog.UserName, userlog.Password);
                if (user != null)
                {
                    var serializeModel = new UserPrincipalSerializeModel
                    {
                        Id          = user.Id,
                        Login       = user.Login,
                        Email       = user.Email,
                        CurrentRole = user.Role
                    };

                    var serializer = new JavaScriptSerializer();

                    var userData = serializer.Serialize(serializeModel);

                    var authTicket = new FormsAuthenticationTicket(
                        1,
                        user.Email,
                        DateTime.Now,
                        DateTime.Now.AddMinutes(60),
                        false,
                        userData);

                    var encTicket = FormsAuthentication.Encrypt(authTicket);
                    var facookie  = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
                    Response.Cookies.Add(facookie);

                    return(this.RedirectToAction("CategoryProducts", "Category"));
                }
            }

            ViewBag.AuthenticationFailedMessage = true;
            return(this.View("LogIn"));
        }