private bool ValidateSession(string sesId, decimal userId) { bool sessionValid = false; UnityContainer container = new UnityContainer(); var authentication = new SystemManagement.Business.Authentication.Authentication(); var validateSession = authentication.ValidateSession(new MethodParameters.Authentication.ValidateSessionIn() { sessionId = sesId, userId = userId }); sessionValid = validateSession.result == Entities.Common.Result.Success; return(sessionValid); }
public ValidateTokenOut ValidateToken(ValidateTokenIn input) { var output = new ValidateTokenOut(); AES256 aes256 = new AES256(); string tokenDecrypt = aes256.Decrypt(input.token); // Se obtiene la informaciĆ³n del token ClaimsPrincipal simplePrinciple = GetPrincipal(tokenDecrypt); if (simplePrinciple != null) { // Se obtienen las propiedades var identity = simplePrinciple.Identity as ClaimsIdentity; if (identity != null) { // Si no esta autenticado se denega el acceso if (identity.IsAuthenticated) { // Se obtienen las variables de las propiedades que se le asignaron al Token cuando se genero var sessionId = identity.FindFirst("sessionId"); var usrID = identity.FindFirst("usrID"); var ip = System.Web.HttpContext.Current.Request.UserHostAddress; if (sessionId?.Value != null && usrID?.Value != null && ip != null) { var autentication = new SystemManagement.Business.Authentication.Authentication(); var validateSessionOut = autentication.ValidateSession(new MethodParameters.Authentication.ValidateSessionIn() { sessionId = sessionId.Value, userId = Convert.ToDecimal(usrID.Value) }); if (validateSessionOut.result == Entities.Common.Result.Success && validateSessionOut.session.usrID == Convert.ToDecimal(usrID.Value) && validateSessionOut.session.sesID == sessionId.Value && validateSessionOut.session.ses_status == "V") { output.tokenInformation = new Entities.Authentication.TokenInformation(); output.tokenInformation.sessionId = sessionId.Value; output.tokenInformation.usrID = usrID.Value; } } } } } return(output); }
public LoginOut Login(LoginIn input) { var output = new LoginOut() { result = Entities.Common.Result.Error }; var request = new Business.User.User(); var getUserOut = request.GetUser(new MethodParameters.User.GetUserIn() { usr_userName = input.usr_userName }); if (getUserOut.result == Entities.Common.Result.Success) { if (getUserOut.user.usr_userName == input.usr_userName) { var passwordIn = Common.Security.Encryption.Encrypt(input.usr_password, getUserOut.user.usr_userName); var passwordBd = getUserOut.user.usr_password; if (passwordIn == passwordBd) { string sessionId = Guid.NewGuid().ToString(); var authentication = new SystemManagement.Business.Authentication.Authentication(); var createSessionOut = authentication.CreateSession(new MethodParameters.Authentication.CreateSessionIn() { sessionId = sessionId, userId = getUserOut.user.usrID }); if (createSessionOut.result == Entities.Common.Result.Success) { output.sessionId = sessionId; output.user = getUserOut.user;; var jwtManager = new SystemManagement.Business.Authentication.JwtManager(); var generateTokenOut = jwtManager.GenerateToken(new MethodParameters.Authentication.JwtManager.GenerateTokenIn() { sessionId = sessionId, usrID = getUserOut.user.usrID }); if (generateTokenOut.result == Entities.Common.Result.Success) { output.token = generateTokenOut.token; output.user = getUserOut.user; output.result = Entities.Common.Result.Success; } } } else { output.message = "Credenciales incorrectas, verifique e intente nuevamente"; } } else { output.message = "Credenciales incorrectas, verifique e intente nuevamente"; } } else { output.message = "Credenciales incorrectas, verifique e intente nuevamente"; } return(output); }