public OAuth2ResponseDto GetOAuth2Renovacion(String refreshToken) { OAuth2ResponseDto resultado = null; var client = new RestClient(values.BaseUrlMSFUCredenciales + "/token"); RestRequest request = new RestRequest(Method.POST); request.AddHeader("Content-Type", "application/x-www-form-urlencoded"); request.AddParameter("grant_type", "refresh_token", ParameterType.GetOrPost); request.AddParameter("refresh_token", refreshToken, ParameterType.GetOrPost); var response = client.Execute <OAuth2ResponseDto>(request); if (response.StatusCode == System.Net.HttpStatusCode.OK) { resultado = response.Data; } return(resultado); }
public OAuth2ResponseDto GetOAuth2Acceso(CredencialDto credencial) { OAuth2ResponseDto resultado = null; var client = new RestClient(values.BaseUrlMSFUCredenciales + "/token"); RestRequest request = new RestRequest(Method.POST); request.AddHeader("Content-Type", "application/x-www-form-urlencoded"); request.AddParameter("grant_type", "password", ParameterType.GetOrPost); request.AddParameter("username", credencial.Usuario, ParameterType.GetOrPost); request.AddParameter("password", values.BizflowUserGeneralKey, ParameterType.GetOrPost); var response = client.Execute <OAuth2ResponseDto>(request); if (response.StatusCode == System.Net.HttpStatusCode.OK) { resultado = response.Data; } return(resultado); }
public Boolean ControlAcceso(String SiglaUsuario, int NroBizflow, TokenInformacion TokenInformacion, out CredencialDto Credencial) { Boolean Resultado = false; Credencial = new CredencialDto() { Usuario = SiglaUsuario, NroBizflow = NroBizflow, TokenAcceso = TokenInformacion.TokenAcceso, TokenRefresco = TokenInformacion.TokenRefresco }; // Primero validar el Token if (!this.credencialesClient.EsTokenValido(Credencial)) { OAuth2ResponseDto Response = null; if (TokenInformacion.EsRenovacion) { // Si renovacion, se utiliza refresh_token Response = this.credencialesClient.GetOAuth2Renovacion(Credencial.TokenRefresco); } else { // Si es primer acceso, se solicita access_token Response = this.credencialesClient.GetOAuth2Acceso(Credencial); TokenInformacion.EsRenovacion = true; } // Validacion respuesta if (null != Response && null == Response.Error) { Resultado = true; TokenInformacion.TokenAcceso = Response.AccessToken; TokenInformacion.TokenRefresco = Response.RefreshToken; Credencial.TokenAcceso = Response.AccessToken; Credencial.TokenRefresco = Response.RefreshToken; // Validar Modo CredencialDto credencialModo = this.credencialesClient.ActualizarModoAcceso(Credencial); if (null != credencialModo) { // Actualizar datos en servicio Credenciales Credencial = this.credencialesClient.ActualizarCredencialUsuario(credencialModo); } else { // En caso de error consultando el Modo, se actualiza el registro de todas formas en modo Visualizacion Credencial.ModoAcceso = Convert.ToDecimal(ModoAccesoUsuario.MODO_VISUALIZACION); Credencial = this.credencialesClient.ActualizarCredencialUsuario(Credencial); } } else { // Sin respuesta correcta, comenzar nuevamente TokenInformacion.EsRenovacion = false; TokenInformacion.TokenAcceso = null; TokenInformacion.TokenRefresco = null; } } else { // Token sigue siendo valido Resultado = true; } return(Resultado); }