예제 #1
0
        private static void CreateSesiones(MAEUserSession be, byte idAplicacion)
        {
            SesionEntity se = new SesionEntity();

            se.IdUsuario                 = be.IdUsuario;
            se.Ip                        = be.Ip;
            se.FechaInicio               = be.FechaInicio;
            se.FechaFinalizacion         = be.FechaFinalizacion;
            se.IdAplicacion              = be.IdAplicacion;
            se.IdPersona                 = be.IdPersona;
            se.IdSesion                  = Guid.NewGuid();
            se.modifiedOrNew             = true;
            se.Global                    = be.Global;
            se.PrivateKey                = be.PrivateKey;
            se.PublicKey                 = be.PublicKey;
            se.ServerPublic              = be.ServerPublic;
            se.ServerSecret              = be.ServerPublic;
            se.ClientPublic              = be.ClientPublic;
            se.ClientSecret              = be.ClientSecret;
            se.Nonce                     = be.Nonce;
            se.JavascriptAllowedCommands = be.JavascriptAllowedCommands;
            se.PermisosUsuario           = be.PermisosUsuario;
            se.AllowedCommands           = be.AllowedCommands;
            se.ConfiguracionRegional     = be.ConfiguracionRegional;
            PersistSessionHelper.Instance.AddOrUpdate(se);
            be.InternalId = se.IdSesion;
            be.ID         = OrdenesApplication.Instance.GetSessionIdForRequest(se.IdSesion.ToString());
            GetSesionExistente(se.IdSesion, idAplicacion);
        }
예제 #2
0
        private void Insertar(SesionEntity sesion)
        {
            List <SqlParameter> lista = new List <SqlParameter>();

            lista.Add(SqlServerHelper.GetParam("@IdSesion", sesion.IdSesion.ToString()));
            lista.Add(SqlServerHelper.GetParam("@IdUsuario", sesion.IdUsuario));
            lista.Add(SqlServerHelper.GetParam("@Ip", sesion.Ip));
            lista.Add(SqlServerHelper.GetParam("@FechaInicio", sesion.FechaInicio));
            lista.Add(SqlServerHelper.GetParam("@FechaFinalizacion", sesion.FechaFinalizacion));
            lista.Add(SqlServerHelper.GetParam("@BajaLogica", sesion.BajaLogica));
            lista.Add(SqlServerHelper.GetParam("@IdAplicacion", sesion.IdAplicacion));
            lista.Add(SqlServerHelper.GetParam("@IdPersona", sesion.IdPersona));
            lista.Add(SqlServerHelper.GetParam("@ClientPublic", sesion.ClientPublic));
            lista.Add(SqlServerHelper.GetParam("@ClientSecret", sesion.ClientSecret));
            lista.Add(SqlServerHelper.GetParam("@ServerPublic", sesion.ServerPublic));
            lista.Add(SqlServerHelper.GetParam("@ServerSecret", sesion.ServerSecret));
            var    kvs = sesion.JavascriptAllowedCommands.Select(kvp => string.Format("\"{0}\":\"{1}\"", kvp.Key, kvp.Value));
            string jsAllowedCommands = string.Concat("{", string.Join(",", kvs), "}");

            lista.Add(SqlServerHelper.GetParam("@JsAllowedCommands", jsAllowedCommands));
            if (sesion.PermisosUsuario != null)
            {
                var    kvsPermUsuario = sesion.PermisosUsuario.Select(kvp => string.Format("\"{0}\":\"{1}\"", kvp.Key, kvp.Value));
                string permUser       = string.Concat("{", string.Join(",", kvsPermUsuario), "}");
                lista.Add(SqlServerHelper.GetParam("@PermisosUsuario", permUser));
            }
            lista.Add(SqlServerHelper.GetParam("@Nonce", sesion.Nonce));
            lista.Add(SqlServerHelper.GetParam("@ConfiguracionRegional", sesion.ConfiguracionRegional));
            SqlServerHelper.ExecuteNonQuery("shared_owner.SESSION_INSERT", lista);
        }
예제 #3
0
 public void AddOrUpdate(SesionEntity sesion)
 {
     if (sesion.modifiedOrNew)
     {
         this.sesiones.AddOrUpdate(sesion.IdSesion, sesion, (k, v) => sesion);
     }
 }
예제 #4
0
 public static void UpdateSesionesContext(MAEUserSession be, bool finalizadaPorLogout = false)
 {
     lock (syncSession)
     {
         SesionEntity se = PersistSessionHelper.Instance.GetSessionById(be.InternalId);
         se.FechaFinalizacion   = be.FechaFinalizacion;
         se.IdPersona           = be.IdPersona;
         se.modifiedOrNew       = true;
         se.FinalizadaPorLogout = finalizadaPorLogout;
         PersistSessionHelper.Instance.AddOrUpdate(se);
     }
 }
예제 #5
0
        public SesionEntity GetSessionById(Guid idSesion)
        {
            SesionEntity sesion = null;

            this.sesiones.TryGetValue(idSesion, out sesion);
            if (sesion == null)
            {
                sesion = SessionDAL.GetSessionById(idSesion);
                sesion.JavascriptAllowedCommands = sesion.jsAllowedCommands.Replace("{", string.Empty).Replace("}", string.Empty).Replace("\"", string.Empty).Split(',').ToDictionary(item => item.Split(':')[0], item => item.Split(':')[1]);
                sesion.PermisosUsuario           = sesion.jsPermisosUsuario.Replace("{", string.Empty).Replace("}", string.Empty).Replace("\"", string.Empty).Split(',').ToDictionary(item => item.Split(':')[0], item => Boolean.Parse(item.Split(':')[1]));
            }
            return(sesion);
        }
예제 #6
0
        public static MAEUserSession GetByIDSesiones(Guid idSesion)
        {
            SesionEntity se = PersistSessionHelper.Instance.GetSessionById(idSesion);

            if (se != null)
            {
                if (se.MaeUserSession == null)
                {
                    PartyEntity   pe = CachingManager.Instance.GetPersonaById(se.IdPersona);
                    UsuarioEntity us = CachingManager.Instance.GetByIdUsuario(se.IdUsuario);
                    se.MaeUserSession                     = new MAEUserSession();
                    se.MaeUserSession.ID                  = OrdenesApplication.Instance.GetSessionIdForRequest(se.IdSesion.ToString());
                    se.MaeUserSession.InternalId          = se.IdSesion;
                    se.MaeUserSession.IdUsuario           = se.IdUsuario;
                    se.MaeUserSession.Ip                  = se.Ip;
                    se.MaeUserSession.FechaInicio         = se.FechaInicio;
                    se.MaeUserSession.FechaFinalizacion   = se.FechaFinalizacion;
                    se.MaeUserSession.IdAplicacion        = se.IdAplicacion;
                    se.MaeUserSession.UltimaActualizacion = se.UltimaActualizacion;
                    se.MaeUserSession.IdPersona           = se.IdPersona;
                    se.MaeUserSession.IdTipoPersona       = pe.IdPartyType;
                    se.MaeUserSession.UserName            = us.Nombre;
                    //se.MaeUserSession.IdEmpresa = pe.IdEmpresa;
                    se.MaeUserSession.Global       = se.Global;
                    se.MaeUserSession.PrivateKey   = se.PrivateKey;
                    se.MaeUserSession.PublicKey    = se.PublicKey;
                    se.MaeUserSession.ClientPublic = se.ClientPublic;
                    se.MaeUserSession.ClientSecret = se.ClientSecret;
                    se.MaeUserSession.ServerPublic = se.ServerPublic;
                    se.MaeUserSession.ServerSecret = se.ServerSecret;
                    se.MaeUserSession.Nonce        = se.Nonce;
                    se.MaeUserSession.JavascriptAllowedCommands = se.JavascriptAllowedCommands;
                    se.MaeUserSession.PermisosUsuario           = se.PermisosUsuario;
                    se.MaeUserSession.AllowedCommands           = se.AllowedCommands;
                    se.MaeUserSession.ConfiguracionRegional     = se.ConfiguracionRegional;
                    se.MaeUserSession.LoginRealizado            = CachingManager.Instance.GetByIdUsuario(se.IdUsuario).LoginRealizado;
                }
                return(se.MaeUserSession);
            }
            return(null);
        }
예제 #7
0
 public void AddOrUpdate(SesionEntity session)
 {
     sessionPersistenceManager.AddOrUpdate(session);
 }
예제 #8
0
        public void DeleteSession(Guid idSesion)
        {
            SesionEntity sesion = null;

            this.sesiones.TryRemove(idSesion, out sesion);
        }