Ajustes para nuevo token

This commit is contained in:
Dario F. Gomez Z 2024-11-25 13:50:21 -05:00
parent 9cbf2d3047
commit f1fe950f50
3 changed files with 46 additions and 16 deletions

View File

@ -22,10 +22,11 @@ namespace Security
}
else
{
string DevKey = Environment.GetEnvironmentVariable("MySecretKey")!;
ReadCredentials();
/*string DevKey = Environment.GetEnvironmentVariable("MySecretKey")!;
HashKey = DevKey;
PwdKey = DevKey;
_SEMILLA = 1262;
_SEMILLA = 1262;*/
}
}

View File

@ -2,6 +2,7 @@ using LdapLoginLib;
using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens;
using MSAdminUsuarios.Context;
using MSAdminUsuarios.Dto;
using Newtonsoft.Json.Linq;
using Security;
using System.IdentityModel.Tokens.Jwt;
@ -67,10 +68,11 @@ namespace MSAdminUsuarios.Controllers
);
if (loggedWithLdap == true) {
string token = Token(userldap);
//string token = Token(userldap);
AutorizaDTO autorizado = Token(userldap);
return Ok(new
{
token = token,
token = autorizado.token,
user = userldap.TX_PKDOC_USUMS,
ldap = 1
});
@ -207,12 +209,13 @@ namespace MSAdminUsuarios.Controllers
//{
//}
string token = Token(user);
//string token = Token(user);
AutorizaDTO autorizado = Token(user);
user.FE_RECUPERACLAVE = null;
_context.USUARIOSMs.Update(user);
_context.SaveChanges();
return Ok(new ResLoginExt("Bienvenido al sistema.", true, user.NU_ESTADO_USUMS, token, user.NU_INICIO_PRIMERAVEZ_USUMS, user.TX_PKDOC_USUMS, user.BL_VIENELDAP_USUMS));
return Ok(new ResLoginExt("Bienvenido al sistema.", true, user.NU_ESTADO_USUMS, autorizado, user.NU_INICIO_PRIMERAVEZ_USUMS, user.TX_PKDOC_USUMS, user.BL_VIENELDAP_USUMS));
}
catch (Exception e)
@ -269,8 +272,9 @@ namespace MSAdminUsuarios.Controllers
if (user == null) return BadRequest("No se encuentra usuario");
string newToken = Token(user);
return Ok(newToken);
//string newToken = Token(user);
AutorizaDTO autorizado = Token(user);
return Ok(autorizado.token);
} catch(Exception ex)
{
@ -311,7 +315,7 @@ namespace MSAdminUsuarios.Controllers
}
[HttpPost("pruebaUsuario")]
public string Token(USUARIO user)
public AutorizaDTO Token(USUARIO user)
{
List<PERFILPORUSUARIO> perfilesPorUsuario = (from perf in _context.PERFILESPORUSUARIOs
where perf.TX_FKDOC_USUMS == user.TX_PKDOC_USUMS && perf.NU_FK_PFL != null && perf.BL_ESTADO_PFLXUSU == 1
@ -333,8 +337,14 @@ namespace MSAdminUsuarios.Controllers
if (perfilesPorPermiso.ContainsKey(key))
{
string antVal = perfilesPorPermiso[key];
perfilesPorPermiso.Remove(key);
perfilesPorPermiso.Add(key, antVal + "," + val);
/*perfilesPorPermiso.Remove(key);
perfilesPorPermiso.Add(key, antVal + "," + val);*/
List<string> result = new List<string>(antVal.Split(','));
if (!result.Contains(val))
{
perfilesPorPermiso.Remove(key);
perfilesPorPermiso.Add(key, antVal + "," + val);
}
}
else
{
@ -387,12 +397,15 @@ namespace MSAdminUsuarios.Controllers
// claims.AddClaim(new Claim("permisos", Encripter.Encrypt(p.NU_FK_MS.ToString())));
//}
List<string> permisosCifrados = new List<string>();
foreach (KeyValuePair<string, string> p in perfilesPorPermiso)
{
string key = p.Key;
string val = p.Value;
claims.AddClaim(new Claim("permisos", _encript.EncryptHashTkn(key) + "::" + val));
//claims.AddClaim(new Claim("permisos", _encript.EncryptHashTkn(key) + "::" + val));
//permisosCifrados.Add(_encript.EncryptHashTkn(key) + "::" + val);
permisosCifrados.Add(key + "::" + "[" + val + "]");
}
var securityTokenDescriptor = new SecurityTokenDescriptor
@ -406,7 +419,12 @@ namespace MSAdminUsuarios.Controllers
var securityToken = jwtSecurityTokenHandler.CreateToken(securityTokenDescriptor);
var token = jwtSecurityTokenHandler.WriteToken(securityToken);
return Encripter.Cypher(token);
AutorizaDTO autorizaDTO = new AutorizaDTO();
autorizaDTO.token = Encripter.Cypher(token);
autorizaDTO.permisos = permisosCifrados;
//return Encripter.Cypher(token);
return autorizaDTO;
}
[HttpPatch("BloquearUsuario")]
@ -539,7 +557,9 @@ namespace MSAdminUsuarios.Controllers
public class ResLoginExt
{
public ResLoginExt(string _message, bool _exist = false, int? _estado = null, string? _token = "", int? _primera = null, string? _user = "", int? _ldap = null)
//public ResLoginExt(string _message, bool _exist = false, int? _estado = null, string? _token = "", int? _primera = null, string? _user = "", int? _ldap = null)
public ResLoginExt(string _message, bool _exist = false, int? _estado = null, AutorizaDTO? _token = null, int? _primera = null, string? _user = "", int? _ldap = null)
{
Message = _message;
Token = _token;
@ -552,8 +572,9 @@ namespace MSAdminUsuarios.Controllers
}
public bool Existe { get; set; }
public int? Estado { get; set; }
public string? Token { get; set; }
public int? Estado { get; set; }
//public string? Token { get; set; }
public AutorizaDTO? Token { get; set; }
public string Message { get; set; } = null!;
public int? Primera { get; set; }
public string? User { get; set; }

View File

@ -0,0 +1,8 @@
namespace MSAdminUsuarios.Dto
{
public class AutorizaDTO
{
public string token { get; set; } = "";
public List<string> permisos { get; set; } = new List<string>();
}
}