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}")); } }
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()); } }
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; } }