Example #1
0
        public virtual void SignIn(TTUsuario user, bool createPersistentCookie)
        {
            var now = DateTime.UtcNow.ToLocalTime();

            var ticket = new FormsAuthenticationTicket(
                1 /*version*/,
                user.Clave_de_Acceso,
                now,
                now.Add(_expirationTimeSpan),
                createPersistentCookie,
                user.Clave_de_Acceso,
                FormsAuthentication.FormsCookiePath);

            var encryptedTicket = FormsAuthentication.Encrypt(ticket);

            var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);

            cookie.HttpOnly = true;
            if (ticket.IsPersistent)
            {
                cookie.Expires = ticket.Expiration;
            }
            cookie.Secure = FormsAuthentication.RequireSSL;
            cookie.Path   = FormsAuthentication.FormsCookiePath;
            if (FormsAuthentication.CookieDomain != null)
            {
                cookie.Domain = FormsAuthentication.CookieDomain;
            }

            _httpContext.Response.Cookies.Add(cookie);
            _cachedUser = user;
            //throw new NotImplementedException();
        }
Example #2
0
        public int Update(TTUsuario entity, GlobalData UserInformation, Core.Domain.Data.DataLayerFieldsBitacora DataReference)
        {
            var rta = 0;

            try
            {
                _usersRepository.Update(entity);
                rta = entity.IdUsuario;
            }
            catch (ExceptionBase ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new ServiceException(ex.Message, ex);
            }

            return(rta);
        }
Example #3
0
        public virtual TTUsuario GetAuthenticatedUSer()
        {
            if (_cachedUser != null)
            {
                return(_cachedUser);
            }

            if (_httpContext == null ||
                _httpContext.Request == null ||
                !_httpContext.Request.IsAuthenticated ||
                !(_httpContext.User.Identity is FormsIdentity))
            {
                return(null);
            }

            var formsIdentity = (FormsIdentity)_httpContext.User.Identity;
            var user          = GetAuthenticatedCustomerFromTicket(formsIdentity.Ticket);

            if (user != null)
            {
                _cachedUser = user;
            }
            return(_cachedUser);
        }
Example #4
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            string         controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
            string         action     = filterContext.ActionDescriptor.ActionName;
            Authentication auth       = null;

            if (CurrentUser != null && CurrentUser.Identity != null && CurrentUser.Identity.IsAuthenticated && SessionHelper.Relogin == false)
            {
                // Get cookies values of user
                HttpCookie authCookie =
                    filterContext.HttpContext.Request.Cookies[FormsAuthentication.FormsCookieName];
                if (authCookie != null && !string.IsNullOrWhiteSpace(authCookie.Value))
                {
                    FormsAuthenticationTicket authTicket    = FormsAuthentication.Decrypt(authCookie.Value);
                    JavaScriptSerializer      serializer    = new JavaScriptSerializer();
                    AuthenticationSerialize   serialiseAuth = serializer.Deserialize <AuthenticationSerialize>(authTicket.UserData);
                    auth = new Authentication(authTicket.Name);
                    // set user context from cookies
                    if (authCookie != null && !string.IsNullOrWhiteSpace(authCookie.Value))
                    {
                        auth.UserContext = serialiseAuth.UserContext;
                    }

                    if (SessionHelper.UserEntity == null || SessionHelper.UserCredential == null)
                    {
                        ISpartan_UserApiConsumer  _IUseroApiConsumer         = new Spartan_UserApiConsumer();
                        ISpartane_FileApiConsumer _ISpartane_FileApiConsumer = new Spartane_FileApiConsumer();

                        // Call Validate User API for user Exists in application
                        Spartan_User_Core UserDetails = _IUseroApiConsumer.ValidateUser(1, 10, "Username = '******'  COLLATE SQL_Latin1_General_CP1_CS_AS And Password = '******'  COLLATE SQL_Latin1_General_CP1_CS_AS").Resource;
                        if (UserDetails.Spartan_Users != null && UserDetails.Spartan_Users.Count > 0)
                        {
                            if (UserDetails.Spartan_Users[0].Status == 1)
                            {
                                TTUsuario user = new TTUsuario
                                {
                                    /*CODMANINI-UPD*/
                                    IdUsuario = Convert.ToInt32(UserDetails.Spartan_Users[0].Id_User),
                                    /*CODMANFIN-UPD*/
                                    Nombre          = Convert.ToString(UserDetails.Spartan_Users[0].Name),
                                    Clave_de_Acceso = UserDetails.Spartan_Users[0].Username,
                                    //Activo = UserDetails.Spartan_Users[0].Status
                                };

                                //Adding user Core entity Data
                                SessionHelper.UserEntity = UserDetails.Spartan_Users[0];

                                var userImage =
                                    _ISpartane_FileApiConsumer.GetByKey(Convert.ToInt32(UserDetails.Spartan_Users[0].Image))
                                    .Resource;
                                if (userImage != null && userImage.File != null)
                                {
                                    SessionHelper.UserImage = userImage.File;
                                }

                                //Saving Credentials
                                SessionHelper.UserCredential = new Spartane_Credential
                                {
                                    Password = auth.UserContext.CurrentUser.Password,
                                    UserName = auth.UserContext.CurrentUser.UserName,
                                };
                                // save role id in session
                                SessionHelper.Role = UserDetails.Spartan_Users[0].Role;
                                // save role object in session
                                SessionHelper.Sprtan_Role = new RoleSpartanUserRole
                                {
                                    Id          = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.Id,
                                    Description = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.Description,
                                    Status      = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.Status,
                                    Status_Spartan_User_Role_Status = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.Status_Spartan_User_Role_Status,
                                    User_Role_Id = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.User_Role_Id,
                                };
                                HttpContext.Current.Session["USERID"]     = user.IdUsuario;
                                HttpContext.Current.Session["USERROLEID"] = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.User_Role_Id;
                            }
                        }
                        else if (controller != "Account" && action != "Login")
                        {
                            filterContext.Controller.TempData["cssClass"] = "error";
                            filterContext.Controller.TempData["message"]  = "You are not logged in.";
                            filterContext.Result = new RedirectResult("~/Account/Login"); //new RedirectResult("/Account/Login");
                            auth = null;
                        }
                    }
                    HttpContext.Current.User = auth;
                }
            }
            // write code here as per role RoleType
            else if (controller != "Account" && action != "Login")
            {
                if ((controller == "General") && (action == "ExecuteQueryTable"))
                {
                }
                else
                {
                    filterContext.Controller.TempData["cssClass"] = "error";
                    filterContext.Controller.TempData["message"]  = "You are not logged in.";
                    filterContext.Result = new RedirectResult("~/Account/Login"); //new RedirectResult("/Account/Login");
                }
            }
        }
        public ActionResult ReLogin(LoginViewModel model, string returnUrl)
        {
            if (ModelState.ContainsKey("LanguageList"))
            {
                ModelState["LanguageList"].Errors.Clear();
            }


            SessionHelper.Relogin = true;

            if (Session.Count <= 1)
            {
                LoginViewModel oLoginViewModel = new LoginViewModel();
                oLoginViewModel.LanguageList = GetLanguage();
                oLoginViewModel.UserName     = model.UserName;
                oLoginViewModel.Password     = model.Password;
                return(Login(oLoginViewModel));
            }



            if (ModelState.IsValid)
            {
                if (!_tokenManager.GenerateToken(model.UserName, EncryptHelper.CalculateMD5Hash(model.Password)))
                {
                    ModelState.AddModelError("", Resources.LoginResources.InvalidUserPassword);
                    return(Json(Resources.LoginResources.InvalidUserPassword));
                }

                _IUseroApiConsumer.SetAuthHeader(_tokenManager.Token);

                // Call Validate User API for user Exists in application
                Spartan_User_Core UserDetails = _IUseroApiConsumer.ValidateUser(1, 10, "Username = '******'  COLLATE SQL_Latin1_General_CP1_CS_AS And Password = '******'  COLLATE SQL_Latin1_General_CP1_CS_AS").Resource;
                if (UserDetails.Spartan_Users != null && UserDetails.Spartan_Users.Count() > 0)
                {
                    //return Json(string.Empty);
                    if (UserDetails.Spartan_Users[0].Status == 1)
                    {
                        TTUsuario user = new TTUsuario
                        {
                            IdUsuario       = Convert.ToInt16(UserDetails.Spartan_Users[0].Id_User),
                            Nombre          = Convert.ToString(UserDetails.Spartan_Users[0].Name),
                            Clave_de_Acceso = UserDetails.Spartan_Users[0].Username,
                            //Activo = UserDetails.Spartan_Users[0].Status
                        };


                        SetAuthentication(UserDetails);
                        //_authenticationService.SignIn(user, model.RememberMe);


                        //Saving Credentials
                        SessionHelper.UserCredential = new Spartane_Credential
                        {
                            Password = EncryptHelper.CalculateMD5Hash(model.Password),
                            UserName = model.UserName,
                        };
                        // save role id in session
                        SessionHelper.Role = UserDetails.Spartan_Users[0].Role;
                        // save role object in session
                        SessionHelper.Sprtan_Role = new RoleSpartanUserRole
                        {
                            Id          = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.Id,
                            Description = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.Description,
                            Status      = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.Status,
                            Status_Spartan_User_Role_Status = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.Status_Spartan_User_Role_Status,
                            User_Role_Id = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.User_Role_Id,
                        };
                        Session["USERID"]     = user.IdUsuario;
                        Session["USERROLEID"] = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.User_Role_Id;
                        Session.Timeout       = Convert.ToInt32(ConfigurationManager.AppSettings["SessionTimeOut"]);

                        SessionHelper.Relogin = false;
                        return(Json(string.Empty));
                    }
                    else
                    {
                        ModelState.AddModelError("", Resources.LoginResources.DeactivateAccount);
                        return(Json(Resources.LoginResources.DeactivateAccount));
                    }
                }
                else
                {
                    ModelState.AddModelError("", Resources.LoginResources.InvalidPassword);
                    return(Json(Resources.LoginResources.InvalidPassword));
                }
            }

            return(Json("SessionExpired"));
        }
        public ActionResult Login(LoginViewModel model, string returnUrl = "")
        {
            Session["BlockUser"] = null;
            if (ModelState.ContainsKey("LanguageList"))
            {
                ModelState["LanguageList"].Errors.Clear();
            }

            if (ModelState.IsValid)
            {
                string passwordEncripted = EncryptHelper.CalculateMD5Hash(model.Password);
                if (!_tokenManager.GenerateToken(model.UserName, passwordEncripted))
                {
                    ModelState.AddModelError("", Resources.LoginResources.InvalidUserPassword);
                    if (SessionHelper.Relogin)
                    {
                        return(Json(Resources.LoginResources.InvalidUserPassword));
                    }
                }

                _ISpartan_SettingsApiConsumer.SetAuthHeader(_tokenManager.Token);
                var FailedAttemptDB = _ISpartan_SettingsApiConsumer.GetByKey("FailedAttempts", false).Resource;
                int FailedAttempts  = Convert.ToInt32(FailedAttemptDB.Valor);
                model.MaxFailedAttempts = FailedAttempts;

                if (Session["UserName"] != null && Session["UserName"].ToString() != model.UserName)
                {
                    model.FailedAttempts = 1;
                }
                Session["UserName"] = model.UserName;
                _IUseroApiConsumer.SetAuthHeader(_tokenManager.Token);

                Spartan_Security_Log oSecurityLog = new Spartan_Security_Log();
                var UsersByName = _IUseroApiConsumer.ListaSelAll(0, 10, "Spartan_User.Username = '******'", "").Resource;
                if (UsersByName.RowCount == 0)
                {
                    ModelState.AddModelError("", Resources.LoginResources.InvalidUserPassword);
                    model.LanguageList    = GetLanguage();
                    SessionHelper.Relogin = false;
                    return(View(model));
                }
                // Call Validate User API for user Exists in application
                Spartan_User_Core UserDetails = _IUseroApiConsumer.ValidateUser(1, 10, "Username = '******'  COLLATE SQL_Latin1_General_CP1_CS_AS And Password = '******'  COLLATE SQL_Latin1_General_CP1_CS_AS").Resource;
                if (UserDetails.Spartan_Users != null && UserDetails.Spartan_Users.Count() > 0)
                {
                    if (UserDetails.Spartan_Users[0].Status == 1)
                    {
                        var spartan_user = new Core.Domain.Spartan_User.Spartan_User
                        {
                            Id_User  = UserDetails.Spartan_Users[0].Id_User,
                            Name     = UserDetails.Spartan_Users[0].Name,
                            Password = UserDetails.Spartan_Users[0].Password
                        };

                        TTUsuario user = new TTUsuario
                        {
                            IdUsuario       = Convert.ToInt16(UserDetails.Spartan_Users[0].Id_User),
                            Nombre          = Convert.ToString(UserDetails.Spartan_Users[0].Name),
                            Clave_de_Acceso = UserDetails.Spartan_Users[0].Username,
                            //Activo = UserDetails.Spartan_Users[0].Status
                        };

                        SetSecurityLogging(ref oSecurityLog, (short)Event_Type.Login, UserDetails.Spartan_Users[0].Id_User, UserDetails.Spartan_Users[0].Role, (short)Result_Type.Granted);
                        int SecurityLogId = _ISpartanSecurityApiConsumer.Insert(oSecurityLog).Resource;

                        SetAuthentication(UserDetails);
                        //_authenticationService.SignIn(user, model.RememberMe);

                        //Adding user Core entity Data
                        SessionHelper.UserEntity = UserDetails.Spartan_Users[0];

                        //Getting User Image
                        _ISpartane_FileApiConsumer.SetAuthHeader(_tokenManager.Token);
                        var userImage =
                            _ISpartane_FileApiConsumer.GetByKey(Convert.ToInt32(UserDetails.Spartan_Users[0].Image))
                            .Resource;
                        if (userImage != null && userImage.File != null)
                        {
                            SessionHelper.UserImage = userImage.File;
                        }
                        Response.Cookies["UserSettings"]["SecurityLogId"] = SecurityLogId.ToString();

                        Spartan_Session_Log oSessionLog = new Spartan_Session_Log();
                        SetSessionLogging(ref oSessionLog, (short)Event_Type.Login, (short)Event_Type.Login, SecurityLogId, UserDetails.Spartan_Users[0].Id_User, UserDetails.Spartan_Users[0].Role, (short)Result_Type.Granted);
                        _ISpartanSessionApiConsumer.Insert(oSessionLog);


                        //Saving Credentials
                        SessionHelper.UserCredential = new Spartane_Credential
                        {
                            Password = EncryptHelper.CalculateMD5Hash(model.Password),
                            UserName = model.UserName,
                        };
                        // save role id in session
                        SessionHelper.Role = UserDetails.Spartan_Users[0].Role;
                        // save role object in session
                        SessionHelper.Sprtan_Role = new RoleSpartanUserRole
                        {
                            Id          = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.Id,
                            Description = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.Description,
                            Status      = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.Status,
                            Status_Spartan_User_Role_Status = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.Status_Spartan_User_Role_Status,
                            User_Role_Id = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.User_Role_Id,
                        };
                        Session["USERID"]     = user.IdUsuario;
                        Session["USERROLEID"] = UserDetails.Spartan_Users[0].Role_Spartan_User_Role.User_Role_Id;
                        Session.Timeout       = Convert.ToInt32(ConfigurationManager.AppSettings["SessionTimeOut"]);
                        Session["LANGUAGEID"] = (model.SelectedLanguage.HasValue) ? model.SelectedLanguage.Value : 1;
                        SessionHelper.Relogin = false;
                        return(RedirectToLocal("~/Frontal/Home/Index"));
                    }
                    else
                    {
                        SetSecurityLogging(ref oSecurityLog, (short)Event_Type.Login, null, null, (short)Result_Type.Denied);
                        _ISpartanSecurityApiConsumer.Insert(oSecurityLog);

                        ModelState.AddModelError("", Resources.LoginResources.DeactivateAccount);
                        if (SessionHelper.Relogin)
                        {
                            return(Json(Resources.LoginResources.DeactivateAccount));
                        }
                    }
                }
                else
                {
                    SetSecurityLogging(ref oSecurityLog, (short)Event_Type.Login, null, null, (short)Result_Type.Denied);
                    _ISpartanSecurityApiConsumer.Insert(oSecurityLog);

                    ModelState.AddModelError("", Resources.LoginResources.InvalidUserPassword);

                    if (model.FailedAttempts < model.MaxFailedAttempts)
                    {
                        model.FailedAttempts = model.FailedAttempts + 1;
                    }
                    else
                    {
                        if (UsersByName.RowCount == 1)
                        {
                            var UserByName = UsersByName.Spartan_Users.First();
                            UserByName.Status = 2;
                            int status = _IUseroApiConsumer.Update(UserByName, null, null).Resource;
                            model.FailedAttempts = 1;
                        }
                        Session["BlockUser"] = true;
                    }
                    if (SessionHelper.Relogin)
                    {
                        return(Json(Resources.LoginResources.InvalidUserPassword));
                    }
                }
            }
            model.LanguageList = GetLanguage();
            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Example #7
0
 public virtual void SignOut()
 {
     _cachedUser = null;
     FormsAuthentication.SignOut();
 }