Ejemplo n.º 1
0
 public async Task <IActionResult> Create()
 {
     try
     {
         var claimTransfer = claimsTransfer.ObtenerClaimsTransferHttpContext();
         ViewData["Sucursal"] = new SelectList(new List <Sucursal> {
             new Sucursal {
                 IdSucursal = (int)claimTransfer.IdSucursal, Nombre = claimTransfer.NombreSucursal
             }
         }, "IdSucursal", "Nombre");
         ViewData["Empleado"] = new SelectList((await apiServicio.ObtenerElementoAsync <List <DatosBasicosEmpleadoViewModel> >(new EmpleadosPorSucursalViewModel {
             IdSucursal = claimTransfer.IdSucursal, EmpleadosActivos = true
         }, new Uri(WebApp.BaseAddressTH), "api/Empleados/ListarEmpleadosPorSucursal")).Select(c => new ListaEmpleadoViewModel {
             IdEmpleado = c.IdEmpleado, NombreApellido = $"{c.Nombres} {c.Apellidos}"
         }), "IdEmpleado", "NombreApellido");
         ViewData["Dependencia"] = new MultiSelectList(await apiServicio.ObtenerElementoAsync <List <Dependencia> >(new Sucursal {
             IdSucursal = claimTransfer.IdSucursal
         }, new Uri(WebApp.BaseAddressTH), "api/Dependencias/ListarDependenciaporSucursal"), "IdDependencia", "Nombre");
         return(View());
     }
     catch (Exception)
     {
         return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.ErrorCargarDatos}"));
     }
 }
Ejemplo n.º 2
0
 private void AsignarClientHeaders(HttpClient client, Uri baseAddress)
 {
     if (baseAddress.ToString().StartsWith(WebApp.BaseAddressRM))
     {
         var claimTransfer = claimsTransfer.ObtenerClaimsTransferHttpContext();
         client.DefaultRequestHeaders.Add("IdSucursal", claimTransfer.IdSucursal.ToString());
         client.DefaultRequestHeaders.Add("IdDependencia", claimTransfer.IdDependencia.ToString());
         client.DefaultRequestHeaders.Add("IdEmpleado", claimTransfer.IdEmpleado.ToString());
         client.DefaultRequestHeaders.Add("IsAdminNacionalProveeduria", claimsTransfer.IsADMIGrupo(ADMI_Grupos.AdminNacionalProveeduria).ToString());
         client.DefaultRequestHeaders.Add("IsAdminZonalProveeduria", claimsTransfer.IsADMIGrupo(ADMI_Grupos.AdminZonalProveeduria).ToString());
         client.DefaultRequestHeaders.Add("IsFuncionarioSolicitante", claimsTransfer.IsADMIGrupo(ADMI_Grupos.FuncionarioSolicitante).ToString());
         client.DefaultRequestHeaders.Add("IsAdminAF", claimsTransfer.IsADMIGrupo(ADMI_Grupos.AdminAF).ToString());
         client.DefaultRequestHeaders.Add("IsEncargadoSeguros", claimsTransfer.IsADMIGrupo(ADMI_Grupos.EncargadoSeguros).ToString());
     }
 }
Ejemplo n.º 3
0
        public void OnActionExecuting(ActionExecutingContext context)
        {
            try
            {
                /// <summary>
                /// Se obtiene el contexto de datos
                /// </summary>
                /// <returns></returns>
                /// con
                var httpContext = context.HttpContext;

                /// <summary>
                /// Se obtiene el path solicitado
                /// </summary>
                /// <returns></returns>
                var request = httpContext.Request;

                /// <summary>
                /// Se obtiene información del usuario autenticado
                /// </summary>
                /// <returns></returns>
                var claim         = context.HttpContext.User.Identities.Where(x => x.NameClaimType == ClaimTypes.Name).FirstOrDefault();
                var token         = claim.Claims.Where(c => c.Type == ClaimTypes.SerialNumber).FirstOrDefault().Value;
                var NombreUsuario = claim.Claims.Where(c => c.Type == ClaimTypes.Name).FirstOrDefault().Value;

                var permiso = new PermisoUsuario
                {
                    Contexto = request.Path,
                    Token    = token,
                    Usuario  = NombreUsuario
                };

                /// <summary>
                /// Se valida que la información del usuario actual tenga permiso para acceder al path solicitado...
                /// </summary>
                /// <returns></returns>
                var respuestaToken = apiServicio.ObtenerElementoAsync <Response>(permiso, new Uri(WebApp.BaseAddressSeguridad), "api/Adscpassws/ExisteToken");

                if (!respuestaToken.Result.IsSuccess)
                {
                    context.HttpContext.Authentication.SignOutAsync("Cookies");

                    foreach (var cookie in context.HttpContext.Request.Cookies.Keys)
                    {
                        context.HttpContext.Response.Cookies.Delete(cookie);
                    }

                    var result = new ViewResult {
                        ViewName = "SeccionCerrada"
                    };
                    context.Result = result;
                }
                else
                {
                    var respuesta = apiServicio.ObtenerElementoAsync <Response>(permiso, new Uri(WebApp.BaseAddressSeguridad), "api/Adscpassws/TienePermiso");
                    if (!respuesta.Result.IsSuccess)
                    {
                        var result = new ViewResult {
                            ViewName = "AccesoDenegado"
                        };
                        context.Result = result;
                    }
                    else
                    {
                        var claimTransfer = claimsTransfer.ObtenerClaimsTransferHttpContext();
                        if (claimTransfer == null || claimTransfer.IdSucursal == 0 || String.IsNullOrEmpty(claimTransfer.NombreSucursal))
                        {
                            var result = new ViewResult {
                                ViewName = "AccesoDenegadoEmpleadosClaims"
                            };
                            context.Result = result;
                        }
                    }
                }
            }
            catch (Exception)
            {
                var result = new RedirectResult(WebApp.BaseAddressWebAppLogin);
                context.Result = result;
            }
        }