public bool Login(string dominio, string usuario, string contraseña, out HttpCookie securityCookie, string empresa, string ejercicio, string almacen) { securityCookie = null; try { var modelSecurity = new SecurityTicket(); if (LoginInternal(dominio, usuario, contraseña, out modelSecurity, empresa, ejercicio, almacen)) { if (modelSecurity != null) { var serializer = new JavaScriptSerializer(); var userData = serializer.Serialize(modelSecurity); var authTicket = new FormsAuthenticationTicket( 1, usuario, DateTime.Now, DateTime.Now.AddMinutes(120), //meter en settings false, userData); var encTicket = FormsAuthentication.Encrypt(authTicket); securityCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); return(true); } } } catch (Exception ex) { if (ex is LicenciaException) { throw; } if (ex is UsuarioactivoException) { throw; } if (ex is UsuarioensuoException) { throw; } if (ex is CambiarEmpresaException) { throw; } Console.Write(ex.Message); } return(false); }
private void CreateUsuarioActivo(SecurityTicket model, MarfilEntities db) { try { var nuevoUsuarioActivo = db.Usuariosactivos.Create(); nuevoUsuarioActivo.fkusuarios = model.Id; nuevoUsuarioActivo.fechaconexion = DateTime.Now; nuevoUsuarioActivo.fechaultimaoperacion = DateTime.Now; nuevoUsuarioActivo.idconexion = Guid.NewGuid(); model.Idconexion = nuevoUsuarioActivo.idconexion; db.Usuariosactivos.Add(nuevoUsuarioActivo); db.SaveChanges(); } catch (Exception) { throw new UsuarioensuoException(string.Format("El usuario {0} ya está en uso.", model.Usuario)); } }
public bool Login(string dominio, string usuario, string contraseña, out HttpCookie securityCookie) { securityCookie = null; try { var modelSecurity = new SecurityTicket { Usuario = ApplicationHelper.UsuariosAdministrador, Id = Guid.Empty, Idconexion = Guid.Empty, RoleId = Guid.Empty, BaseDatos = "marfil", Empresa = "0001", Ejercicio = "2" //serializeModel.Roles = db.USUARIOROLE.Where(i => i.IDUSUARIO == u.ID).Select(i => i.ROLE.NOMBRE).ToList(); }; var serializer = new JavaScriptSerializer(); var userData = serializer.Serialize(modelSecurity); var authTicket = new FormsAuthenticationTicket( 1, usuario, DateTime.Now, DateTime.Now.AddMinutes(120), //meter en settings false, userData); var encTicket = FormsAuthentication.Encrypt(authTicket); securityCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); return(true); } catch (Exception ex) { Console.Write(ex.Message); } return(true); }
public void SetEmpresaUser(string dominio, string basedatos, string user, string empresa, string ejercicio, string almacen, Guid idconexion, out HttpCookie cookie) { cookie = null; try { var modelSecurity = new SecurityTicket(); var serializer = new JavaScriptSerializer(); var userData = serializer.Serialize(modelSecurity); var authTicket = new FormsAuthenticationTicket( 1, user, DateTime.Now, DateTime.Now.AddMinutes(120), //meter en settings false, userData); var encTicket = FormsAuthentication.Encrypt(authTicket); cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); } catch (Exception ex) { Console.Write(ex.Message); } }
private bool LoginInternal(string dominio, string usuario, string contraseña, out SecurityTicket model, string empresa, string ejercicio, string almacen) { var result = true; model = null; try { var tusuario = usuario; var tid = Guid.Empty; var troleid = Guid.Empty; var tbasedatos = ""; var tempresa = string.Empty; var tazureblob = ""; var licenciaModel = new LicenciasaplicacionService(dominio); tbasedatos = licenciaModel.Basedatos; tazureblob = licenciaModel.Azureblob; using (var db = MarfilEntities.ConnectToSqlServer(licenciaModel.Basedatos)) { if (usuario.Equals(ApplicationHelper.UsuariosAdministrador)) { var admin = db.Administrador.FirstOrDefault(u => u.password == contraseña); if (admin == null) { return(false); } } else { var objUser = db.Usuarios.FirstOrDefault(u => u.usuario == usuario && u.password == contraseña); if (objUser != null) { var objRole = db.Roles.First(f => f.Usuarios.Any(j => j.id == objUser.id)); tid = objUser.id; troleid = objRole.id; } else { return(false); } } //Rai tempresa = string.IsNullOrEmpty(empresa) ? GetEmpresaDefecto(tid, db) : empresa; var descripcionempresa = db.Empresas.Where(f => f.id == tempresa).Select(f => f.nombre).SingleOrDefault(); if (puedeEntrarEmpresa(tbasedatos, tusuario, tempresa, dominio)) { Validarlicencia(tid, usuario, licenciaModel, db); var context = new LoginContextService(tempresa, licenciaModel.Basedatos); var ejercicioService = FService.Instance.GetService(typeof(EjerciciosModel), context, db) as EjerciciosService; var almacenService = FService.Instance.GetService(typeof(AlmacenesModel), context, db) as AlmacenesService; var talmacen = string.IsNullOrEmpty(almacen) ? almacenService.GetAlmacenDefecto(tid, db, tempresa) : almacen; var tejercicio = string.IsNullOrEmpty(ejercicio) ? ejercicioService.GetEjercicioDefecto(tid, db, tempresa) : ejercicio; model = new SecurityTicket { Usuario = tusuario, Id = tid, RoleId = troleid, BaseDatos = tbasedatos, Empresa = tempresa, Ejercicio = tejercicio, Fkalmacen = talmacen, Tipolicencia = licenciaModel.TipoLicencia, Azureblob = tazureblob //serializeModel.Roles = db.USUARIOROLE.Where(i => i.IDUSUARIO == u.ID).Select(i => i.ROLE.NOMBRE).ToList(); }; CreateUsuarioActivo(model, db); // esto es la validación //var u = db.Usuarios.FirstOrDefault(i => i.Usuario == usu.Email && i.PWD == usu.Password && i.IFACTIVO); var preferencias = new PreferenciasUsuarioService(db); preferencias.SetPreferencia(TiposPreferencias.EmpresaDefecto, tid, PreferenciaEmpresaDefecto.Id, PreferenciaEmpresaDefecto.Nombre, new PreferenciaEmpresaDefecto() { Empresa = tempresa }); if (tempresa != ApplicationHelper.EmpresaMock) { var ejercicioPreferencia = new PreferenciaEjercicioDefecto(); ejercicioPreferencia.SetEjercicio(tempresa, tejercicio); var almacenPreferencia = new PreferenciaAlmacenDefecto(); almacenPreferencia.SetAlmacen(tempresa, talmacen); preferencias.SetPreferencia(TiposPreferencias.EjercicioDefecto, tid, PreferenciaEjercicioDefecto.Id, PreferenciaEjercicioDefecto.Nombre, ejercicioPreferencia); preferencias.SetPreferencia(TiposPreferencias.AlmacenDefecto, tid, PreferenciaAlmacenDefecto.Id, PreferenciaAlmacenDefecto.Nombre, almacenPreferencia); } } else { throw new CambiarEmpresaException("No tiene permisos sobre la empresa " + descripcionempresa + " Consulte con su administrador"); } } } catch (Exception ex) { Console.Write(ex.Message); if (ex is LicenciaException) { throw; } if (ex is UsuarioactivoException) { throw; } if (ex is UsuarioensuoException) { throw; } if (ex is CambiarEmpresaException) { throw; } result = false; } return(result); }
public bool Login(string dominio, string usuario, string contraseña, out SecurityTicket model) { return(LoginInternal(dominio, usuario, contraseña, out model, string.Empty, string.Empty, string.Empty)); }