public void ExpireLoginTicket(LoginTicket loginTicket) { using (var ctx = new IdentityManagerContext()) { var ticket = ctx.Tickets.SingleOrDefault(x => x.TokenId == loginTicket.TokenId); ticket.IsExpired = true; ctx.SaveChanges(); } }
static void Main(string[] args) { TicketFactory ltf = new TicketFactory("C:\\key.pem"); LoginTicket mrNobody = new LoginTicket("Вася", 60 * 24); string result = ltf.CreateTicket(mrNobody); Console.WriteLine("Login ticket is:"); Console.WriteLine(result); Console.WriteLine("Press any key to exit"); Console.ReadKey(); }
public ClsFEXAuthRequest ObtenerTicketFex() { LoginTicket loginTicket = new LoginTicket(); loginTicket.ObtenerLoginTicketResponse(this.idServicioNegocioFex, this.certSigner, false, this.storeName, this.storeLocation); ClsFEXAuthRequest feAuthRequest = new ClsFEXAuthRequest(); feAuthRequest.Cuit = Convert.ToInt64(this.cuit); feAuthRequest.Sign = loginTicket.Sign; feAuthRequest.Token = loginTicket.Token; return(feAuthRequest); }
public void CreateLoginTicket(string userNameWithDomain, string ldapPath) { var ticket = new LoginTicket { Domain = ldapPath, IsExpired = false, LogInTime = DateTime.UtcNow, TokenId = Guid.NewGuid(), UserName = userNameWithDomain, }; using (var ctx = new IdentityManagerContext()) { ctx.Tickets.Add(ticket); ctx.SaveChanges(); } }
public static void Main(string[] args) { string cert; string key; uint minutes; if (args.Length != 3) { System.Console.WriteLine("Forma de uso: TestTicketRequest certficado key minutos"); } else { cert = args[0]; key = args[1]; minutes = uint.Parse(args[2]); LoginTicket ticket = new LoginTicket(cert, key, minutes, true); } }
private static void GetTiposMonedas() { //string certSigner = @"C:\Diego\Proyectos\FacturaElect\Afip - Ejemplos Codigo\FeCertificadoDesarrollo\certificadoAFIP.crt"; string certSigner = @"C=AR, O=ENDESA, SERIALNUMBER=CUIT 23289508759, CN=TestFE"; LoginTicket loginTicket = new LoginTicket(); string ticketReponse = loginTicket.ObtenerLoginTicketResponse(DEFAULT_SERVICIO, certSigner, false, StoreName.TrustedPeople, StoreLocation.CurrentUser); string cuit = "23289508759"; FEAuthRequest feAuthRequest = new FEAuthRequest(); feAuthRequest.Cuit = Convert.ToInt64(cuit); feAuthRequest.Sign = loginTicket.Sign; feAuthRequest.Token = loginTicket.Token; Console.WriteLine("***Llamando al GetTiposMoneda en URL"); WsfeClient client = new WsfeClient(); FacturaElectronica.Afip.Ws.Wsfe.MonedaResponse result = client.GetTiposMonedas(feAuthRequest); Console.WriteLine("Result"); foreach (var item in result.ResultGet) { Console.WriteLine("item Id: " + item.Id + " Desc: " + item.Desc); } }
/// <summary> /// Funcion Main (consola) /// </summary> /// <param name="args">Argumentos de linea de comandos</param> /// <returns>0 si terminó bien, valores negativos si hubieron errores</returns> /// <remarks></remarks> public static int Main(string[] args) { MostrarVersion(); string strUrlWsaaWsdl = DEFAULT_URLWSAAWSDL; string strUrlWsfeWsdl = DEFAULT_URLWSFEWSDL; string strIdServicioNegocio = DEFAULT_SERVICIO; string strRutaCertSigner = DEFAULT_CERTSIGNER; string strPassword = null; long longCuit = DEFAULT_CUIT; int cbteTipo = DEFAULT_CBTETIPO; int ptoVta = DEFAULT_PTOVTA; string strSalida = DEFAULT_ARCHIVOSALIDA; bool blnVerboseMode = DEFAULT_VERBOSE; // Analizo argumentos de linea de comandos if (args.Length == 0) { explicarUso(); return(-1); } for (int i = 0; i <= args.Length - 1; i++) { string argumento; argumento = args[i]; if (String.Compare(argumento, "-w", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA"); return(-1); } else { strUrlWsaaWsdl = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-x", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA"); return(-1); } else { strUrlWsfeWsdl = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-s", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el ID del servicio de negocio"); return(-1); } else { strIdServicioNegocio = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-c", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó ruta del certificado firmante"); return(-1); } else { strRutaCertSigner = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-p") == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el password"); return(-1); } else { strPassword = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-t") == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el CUIT"); return(-1); } else { longCuit = long.Parse(args[i + 1]); i = i + 1; } } else if (String.Compare(argumento, "-T") == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el ComprobanteTipo (int)"); return(-1); } else { cbteTipo = int.Parse(args[i + 1]); i = i + 1; } } else if (String.Compare(argumento, "-P") == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el Punto de Venta (int)"); return(-1); } else { ptoVta = int.Parse(args[i + 1]); i = i + 1; } } else if (String.Compare(argumento, "-o", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el archivo de salida"); return(-1); } else { strSalida = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-v", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó modo: on|off"); return(-1); } else { blnVerboseMode = (String.Compare(args[i + 1], "on", true) == 0 ? true : false); i = i + 1; } } else if (String.Compare(argumento, "-?", true) == 0) { explicarUso(); return(0); } else { Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase(); Console.WriteLine("Error: argumento desconocido: {0}", argumento); Console.WriteLine("Para obtener ayuda: {0} -?", MyApplication.Info.AssemblyName); return(-2); } } // Argumentos OK, entonces procesar normalmente... LoginTicket objTicketRespuesta; string strTicketRespuesta; try { if (blnVerboseMode) { Console.WriteLine("***Servicio a acceder: {0}", strIdServicioNegocio); Console.WriteLine("***URL del WSAA: {0}", strUrlWsaaWsdl); Console.WriteLine("***URL del WSFE: {0}", strUrlWsfeWsdl); Console.WriteLine("***Ruta del certificado: {0}", strRutaCertSigner); Console.WriteLine("***Password del certificado: {0}", (strPassword == null ? "-NO PASSWD-" : "*****")); Console.WriteLine("***Comprobante Tipo: {0}", cbteTipo); Console.WriteLine("***Punto de venta: {0}", ptoVta); Console.WriteLine("***Archivo de salida: {0}", strSalida); Console.WriteLine("***Nro de CUIT en certificado: {0}", longCuit); Console.WriteLine("***Modo verbose: {0}", blnVerboseMode); } objTicketRespuesta = new LoginTicket(); if (blnVerboseMode) { Console.WriteLine("***Accediendo a {0}", strUrlWsaaWsdl); } strTicketRespuesta = objTicketRespuesta.ObtenerLoginTicketResponse(strIdServicioNegocio, strUrlWsaaWsdl, strRutaCertSigner, strPassword, blnVerboseMode); if (blnVerboseMode) { Console.WriteLine("***CONTENIDO DEL TICKET RESPUESTA:"); Console.WriteLine(" Token: {0}", objTicketRespuesta.Token); Console.WriteLine(" Sign: {0}", objTicketRespuesta.Sign); Console.WriteLine(" GenerationTime: {0}", Convert.ToString(objTicketRespuesta.GenerationTime)); Console.WriteLine(" ExpirationTime: {0}", Convert.ToString(objTicketRespuesta.ExpirationTime)); Console.WriteLine(" Service: {0}", objTicketRespuesta.Service); Console.WriteLine(" UniqueID: {0}", Convert.ToString(objTicketRespuesta.UniqueId)); } } catch (Exception excepcionAlObtenerTicket) { Console.WriteLine("***EXCEPCION AL OBTENER TICKET:"); Console.WriteLine(excepcionAlObtenerTicket.Message); return(-10); } WsfeFECompUltimoAutorizado wsfeFECompUltimoAutorizado = new WsfeFECompUltimoAutorizado(strUrlWsfeWsdl, objTicketRespuesta.Token, objTicketRespuesta.Sign); wsfeFECompUltimoAutorizado.verbose = blnVerboseMode; return(wsfeFECompUltimoAutorizado.send(longCuit, cbteTipo, ptoVta, strSalida)); }
/// <summary> /// Funcion Main (consola) /// </summary> /// <param name="args">Argumentos de linea de comandos</param> /// <returns>0 si terminó bien, valores negativos si hubieron errores</returns> /// <remarks></remarks> public static int Main(string[] args) { MostrarVersion(); string strUrlWsaaWsdl = DEFAULT_URLWSAAWSDL; string strUrlWsfeWsdl = DEFAULT_URLWSFEWSDL; string strIdServicioNegocio = DEFAULT_SERVICIO; string strRutaCertSigner = DEFAULT_CERTSIGNER; string strPassword = null; long longCuit = DEFAULT_CUIT; string strFactura = DEFAULT_ARCHIVOFACTURA; string strSalida = DEFAULT_ARCHIVOSALIDA; bool blnVerboseMode = DEFAULT_VERBOSE; // Analizo argumentos de linea de comandos if (args.Length == 0) { explicarUso(); return(-1); } for (int i = 0; i <= args.Length - 1; i++) { string argumento; argumento = args[i]; if (String.Compare(argumento, "-w", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA"); return(-1); } else { strUrlWsaaWsdl = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-x", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA"); return(-1); } else { strUrlWsfeWsdl = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-s", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el ID del servicio de negocio"); return(-1); } else { strIdServicioNegocio = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-c", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó ruta del certificado firmante"); return(-1); } else { strRutaCertSigner = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-p", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el password"); return(-1); } else { strPassword = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-t", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el CUIT"); return(-1); } else { longCuit = long.Parse(args[i + 1]); i = i + 1; } } else if (String.Compare(argumento, "-f", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el archivo de entrada"); return(-1); } else { strFactura = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-o", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó el archivo de salida"); return(-1); } else { strSalida = args[i + 1]; i = i + 1; } } else if (String.Compare(argumento, "-v", true) == 0) { if (args.Length < (i + 2)) { Console.WriteLine("Error: no se especificó modo: on|off"); return(-1); } else { blnVerboseMode = (String.Compare(args[i + 1], "on", true) == 0 ? true : false); i = i + 1; } } else if (String.Compare(argumento, "-?", true) == 0) { explicarUso(); return(0); } else { Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase(); Console.WriteLine("Error: argumento desconocido: {0}", argumento); Console.WriteLine("Para obtener ayuda: {0} -?", MyApplication.Info.AssemblyName); return(-2); } } if (isMissingParameter(longCuit)) { return(-3); } //var x = new WsfeSolicitud("xxx", "token", "bla"); //x.pruebas(12345678, "lalala.xml", "lalala.xml"); // return 1; // Argumentos OK, entonces procesar normalmente... LoginTicket objTicketRespuesta; string strTicketRespuesta; try { if (blnVerboseMode) { Console.WriteLine("***Servicio a acceder: {0}", strIdServicioNegocio); Console.WriteLine("***URL del WSAA: {0}", strUrlWsaaWsdl); Console.WriteLine("***URL del WSFE: {0}", strUrlWsfeWsdl); Console.WriteLine("***Ruta del certificado: {0}", strRutaCertSigner); Console.WriteLine("***Password del certificado: {0}", (strPassword == null ? "-NO PASSWD-" : "*****")); Console.WriteLine("***Archivo de factura: {0}", strFactura); Console.WriteLine("***Archivo de salida: {0}", strSalida); Console.WriteLine("***Nro de CUIT en certificado: {0}", longCuit); Console.WriteLine("***Modo verbose: {0}", blnVerboseMode); Console.WriteLine(" CWD: {0}", AppDomain.CurrentDomain.BaseDirectory); } objTicketRespuesta = new LoginTicket(); if (blnVerboseMode) { Console.WriteLine("***Accediendo a {0}", strUrlWsaaWsdl); } strTicketRespuesta = objTicketRespuesta.ObtenerLoginTicketResponse(strIdServicioNegocio, strUrlWsaaWsdl, strRutaCertSigner, strPassword, blnVerboseMode); if (blnVerboseMode) { Console.WriteLine("***CONTENIDO DEL TICKET RESPUESTA:"); Console.WriteLine(" Token: {0}", objTicketRespuesta.Token); Console.WriteLine(" Sign: {0}", objTicketRespuesta.Sign); Console.WriteLine(" GenerationTime: {0}", Convert.ToString(objTicketRespuesta.GenerationTime)); Console.WriteLine(" ExpirationTime: {0}", Convert.ToString(objTicketRespuesta.ExpirationTime)); Console.WriteLine(" Service: {0}", objTicketRespuesta.Service); Console.WriteLine(" UniqueID: {0}", Convert.ToString(objTicketRespuesta.UniqueId)); } } catch (Exception excepcionAlObtenerTicket) { Console.WriteLine("***EXCEPCION AL OBTENER TICKET:"); Console.WriteLine(excepcionAlObtenerTicket.Message); return(-10); } WsfeSolicitud wsfeSolicitud = new WsfeSolicitud(strUrlWsfeWsdl, objTicketRespuesta.Token, objTicketRespuesta.Sign); wsfeSolicitud.verbose = blnVerboseMode; return(wsfeSolicitud.send(longCuit, strFactura, strSalida)); }
/// <summary> /// Obtiene el Ticket de Acceso /// Si esta vigente lo otiene de la ubicación establecida /// Si no esta vigente lo obtiene del Web Service de AFIP /// </summary> /// <param name="ubicacion_TA">Ubicación del archivo local</param> /// <param name="strIdServicioNegocio">servicio al que se desea acceder</param> /// <param name="strUrlWsaaWsdl">URL del WSAA</param> /// <param name="strRutaCertSigner">Ruta del certificado X509 (con clave privada) usado para firmar</param> /// <param name="strPasswordSecureString">Password del certificado X509 (con clave privada) usado para firmar</param> /// <param name="strProxy">IP:port del proxy</param> /// <param name="strProxyUser">Usuario del proxy</param> /// <param name="strProxyPassword">Password del proxy</param> /// <param name="blnVerboseMode">Nivel detallado de descripcion? true/false</param> /// <returns>Retorna el Ticket de Acceso en caso de error retorna Null</returns> public LoginTicket obtenerTicketAcceso(string ubicacion_TA, string strIdServicioNegocio, string strUrlWsaaWsdl, string strRutaCertSigner, SecureString strPasswordSecureString, string strProxy, string strProxyUser, string strProxyPassword, FileStream archivoLog, StreamWriter flujoEscritura, bool blnVerboseMode = false) { LoginTicket objTicketRespuesta = null; string strTicketRespuesta = null; bool pedirTA = true; //¿Hay que sincronizar las fechas? DateTime fechHoraActual = DateTime.Now; if (File.Exists(ubicacion_TA)) { //Si existe, cargo el TA de la ubicación local try { XmlDocument xmlTA = new XmlDocument(); xmlTA.Load(ubicacion_TA); strTicketRespuesta = xmlTA.OuterXml; objTicketRespuesta = new LoginTicket(); objTicketRespuesta.UniqueId = UInt32.Parse(xmlTA.SelectSingleNode("//uniqueId").InnerText); objTicketRespuesta.GenerationTime = DateTime.Parse(xmlTA.SelectSingleNode("//generationTime").InnerText); objTicketRespuesta.ExpirationTime = DateTime.Parse(xmlTA.SelectSingleNode("//expirationTime").InnerText); objTicketRespuesta.Sign = xmlTA.SelectSingleNode("//sign").InnerText; objTicketRespuesta.Token = xmlTA.SelectSingleNode("//token").InnerText; } catch (Exception excepcionAlCargarTicket) { if (archivoLog != null && flujoEscritura != null) { try { string inf = ""; string fecha = DateTime.Now.ToString(); inf = inf + "[" + fecha + "] "; inf = inf + excepcionAlCargarTicket.Message + "\n"; //Escribo en el archivo UtilClass.escribirArchivoLog(inf, archivoLog, flujoEscritura, _strLog); } catch (Exception e) { return(null); } } return(null); } //Compruebo si el ticket de acceso está vigente if (objTicketRespuesta.GenerationTime <= fechHoraActual && fechHoraActual < objTicketRespuesta.ExpirationTime) { //El ticket está vigente, lo retorno pedirTA = false; return(objTicketRespuesta); } else { //Se debe obtener un nuevo Ticket de acceso pedirTA = true; } } else { //No se encontró el ticket de acceso en la ubicación especificada, se debe obtener uno nuevo pedirTA = true; } try { //Obtener el Ticket de Acceso del Web Service if (pedirTA) { objTicketRespuesta = new LoginTicket(); strTicketRespuesta = objTicketRespuesta.ObtenerLoginTicketResponse(strIdServicioNegocio, strUrlWsaaWsdl, strRutaCertSigner, strPasswordSecureString, strProxy, strProxyUser, strProxyPassword, blnVerboseMode); //guardar Ticket XmlDocument xmlTA = new XmlDocument(); xmlTA.LoadXml(strTicketRespuesta); xmlTA.Save(ubicacion_TA); return(objTicketRespuesta); } } catch (XmlException e) { try { string inf = ""; string fecha = DateTime.Now.ToString(); inf = inf + "[" + fecha + "] "; inf = inf + "***EXCEPCION XML: " + e.Message; //Escribo en el archivo UtilClass.escribirArchivoLog(inf, archivoLog, flujoEscritura, _strLog); } catch (Exception ex) { return(null); } return(null); } catch (Exception excepcionObtUltComprobante) { try { string inf = ""; string fecha = DateTime.Now.ToString(); inf = inf + "[" + fecha + "] "; inf = inf + "***EXCEPCION AL CARGAR TICKET: " + excepcionObtUltComprobante.Message; //Escribo en el archivo UtilClass.escribirArchivoLog(inf, archivoLog, flujoEscritura, _strLog); } catch (Exception ex) { return(null); } return(null); } return(objTicketRespuesta); }
/// <summary> /// Prueba el servicio de de Prueba de AFIP /// </summary> /// <param name="ticketAcceso">Ticket de Acceso de prueba</param> /// <param name="ptoVta">Pto de Vta que se utiliza</param> /// <param name="tipoComp">Tipo de comprobante a probar</param> /// <returns>True si se probó el servicio y funciona correctamente, False en otro caso</returns> public bool probarServicioPru(LoginTicket ticketAcceso, int ptoVta, int tipoComp) { bool r = false; if (ticketAcceso != null) { try { //Asigno los valores de autorización: CUIT, SIGN y Token ClienteLoginCms_CS.ar.gov.afip.wswhomo.FEAuthRequest autorizacionPru = new ClienteLoginCms_CS.ar.gov.afip.wswhomo.FEAuthRequest(); string cuit = UtilClass.cambiarFormatoCuitSinGuinoes(_cuitEmisor); long cuitLong = 0; if (long.TryParse(cuit, out cuitLong)) { autorizacionPru.Cuit = cuitLong; autorizacionPru.Sign = ticketAcceso.Sign; autorizacionPru.Token = ticketAcceso.Token; } else { Exception errorExc = new Exception("No se pudo convertir el cuit a Long"); throw errorExc; } if (!_produccion) { ClienteLoginCms_CS.ar.gov.afip.wswhomo.FERecuperaLastCbteResponse respuestaUltAut = null; respuestaUltAut = _servicioPrueba.FECompUltimoAutorizado(autorizacionPru, ptoVta, tipoComp); if (respuestaUltAut != null) { if (respuestaUltAut.CbteNro >= 0) { r = true; } else { Exception errorExc = new Exception("El número del último comprobante es negativo\n"); throw errorExc; } } else { Exception errorExc = new Exception("No se pudo obtener el ultimo comprobante autorizado\n"); throw errorExc; } } } catch (Exception e) { string inf = ""; string fecha = DateTime.Now.ToString(); inf = inf + "[" + fecha + "] "; inf = inf + "Error al probar el servicio de AFIP. " + e.Message + "\n"; //Escribo en el archivo UtilClass.escribirArchivoLog(inf, _archivoLog, _flujoEscritura, _strLog); return(false); } } else { string inf = ""; string fecha = DateTime.Now.ToString(); inf = inf + "[" + fecha + "] "; inf = inf + "Error al probar el servicio. El ticket de acceso es NULL\n"; //Escribo en el archivo UtilClass.escribirArchivoLog(inf, _archivoLog, _flujoEscritura, _strLog); return(false); } return(r); }
/// <summary> /// Autoriza el comprobante de PRUEBA pasado como parametro con el Ticket de Acceso, el IdComprobante es para asegurar de que sea el comprobante que se pasa /// </summary> /// <param name="ticketAcceso">Ticket de Acceso utilizado para acceder a los servicios del AFIP</param> /// <param name="comprobante">Comprobante a Autorizar</param> /// <param name="idComprobante">ID del comprobante a autorizar</param> /// <returns>FECAEResponse si se autorizó correctamente, NULL en otro caso</returns> public ClienteLoginCms_CS.ar.gov.afip.wswhomo.FECAEResponse autorizarComprobantePru(LoginTicket ticketAcceso, ComprobanteClass comprobante, int idComprobante) { ClienteLoginCms_CS.ar.gov.afip.wswhomo.FECAEResponse respuesta = null; if (ticketAcceso != null && idComprobante > 0 && comprobante.IDComprobante != 0) { if (comprobante.IDComprobante == idComprobante) { if (comprobante.CAE != "") { string inf = ""; string fecha = DateTime.Now.ToString(); inf = inf + "[" + fecha + "] "; inf = inf + "Error al autorizar el comprobante por ID. El comprobante ya está autorizado con CAE: " + comprobante.CAE + "\n"; //Escribo en el archivo UtilClass.escribirArchivoLog(inf, _archivoLog, _flujoEscritura, _strLog); return(null); } else { try { //Asigno los valores de autorización: CUIT, SIGN y Token ClienteLoginCms_CS.ar.gov.afip.wswhomo.FEAuthRequest autorizacionPru = new ClienteLoginCms_CS.ar.gov.afip.wswhomo.FEAuthRequest(); string cuit = UtilClass.cambiarFormatoCuitSinGuinoes(_cuitEmisor); long cuitLong = 0; if (long.TryParse(cuit, out cuitLong)) { autorizacionPru.Cuit = cuitLong; autorizacionPru.Sign = ticketAcceso.Sign; autorizacionPru.Token = ticketAcceso.Token; } else { Exception errorExc = new Exception("No se pudo convertir el cuit a Long"); throw errorExc; } /*** Armar RequerimientoAutorización*/ ClienteLoginCms_CS.ar.gov.afip.wswhomo.FECAERequest reqAut = armarRequerimientoAutorizacionPru(autorizacionPru, comprobante); if (!_produccion) { if (comprobante.CAE == "" && comprobante.FechaVtoCAE == "" && comprobante.NroComprobante == 0) { //Autorizar respuesta = _servicioPrueba.FECAESolicitar(autorizacionPru, reqAut); } else { // Ya está autorizado Exception errorExc = new Exception("El comprobante ya se encuentra Autorizado"); throw errorExc; } } /* * Guardar en carpeta no lo utilizamos por ahora * */ #region Guardar en carpeta /* * if (respuesta != null) * { * * ClienteLoginCms_CS.ar.gov.afip.wswhomo.FECAECabResponse cabeceraRespuesta = respuesta.FeCabResp; * ClienteLoginCms_CS.ar.gov.afip.wswhomo.FECAEDetResponse detalleRespuesta = respuesta.FeDetResp.First(); * * * * string codSocio = "" + comprobante.cod_socio; * codSocio = codSocio.PadLeft(5, '0'); * * string puntoVenta = "" + cabeceraRespuesta.PtoVta; * puntoVenta = puntoVenta.PadLeft(4, '0'); * * string numComprobante = "" + detalleRespuesta.CbteDesde; * numComprobante = numComprobante.PadLeft(8, '0'); * * string identifReg = "" + comprobante.idregistro; * identifReg = identifReg.PadLeft(5, '0'); * * * * if (detalleRespuesta.Resultado != "A") * { * puntoVenta = "0000"; * numComprobante = "00000000"; * } * * * * * nombreCarpeta = "\\CLIENTE_" + codSocio + "_" + comp + "_" + puntoVenta + "_" + numComprobante + "_id_" + identifReg; * * * //Creo Carpeta si no existe * * if (!Directory.Exists(_strpdfs + nombreCarpeta)) * { * Directory.CreateDirectory(_strpdfs + nombreCarpeta); * } * * //Guardo el REQUEST.xml del comprobante * * string strArchivoReq = _strpdfs + nombreCarpeta + "\\REQUEST.xml"; * * * * // FileStream archivoReq = new FileStream(strArchivoReq, FileMode.OpenOrCreate, FileAccess.Write); * * // StreamWriter flujoEscritura = new StreamWriter(archivoReq); * * * XmlDocument xmlReq = new XmlDocument(); * * //string strReqCae = reqCae.ToString(); //¿FUNCIONA? * string strReqCae = UtilClass.convertirAXML(reqCae); * xmlReq.LoadXml(strReqCae); * * xmlReq.Save(strArchivoReq); * * //Guardo RESPONSE.xml del comprobante * * string strArchivoRes = _strpdfs + nombreCarpeta + "\\RESPONSE.xml"; * * XmlDocument xmlRes = new XmlDocument(); * * //string strResCae = respuesta.ToString(); //¿FUNCIONA? * string strResCae = UtilClass.convertirAXML(respuesta); * xmlRes.LoadXml(strResCae); * * xmlRes.Save(strArchivoRes); * * * //} * //} * } */ #endregion } catch (Exception e) { string inf = ""; string fecha = DateTime.Now.ToString(); inf = inf + "[" + fecha + "] "; inf = inf + "Error al autorizar el comprobante por ID. " + e.Message + "\n"; //Escribo en el archivo UtilClass.escribirArchivoLog(inf, _archivoLog, _flujoEscritura, _strLog); return(null); } } } else { string inf = ""; string fecha = DateTime.Now.ToString(); inf = inf + "[" + fecha + "] "; inf = inf + "Error al autorizar el comprobante por ID. El ID del comprobante no se corresponde con el que se desea autorizar\n"; //Escribo en el archivo UtilClass.escribirArchivoLog(inf, _archivoLog, _flujoEscritura, _strLog); return(null); } } else { string inf = ""; string fecha = DateTime.Now.ToString(); inf = inf + "[" + fecha + "] "; inf = inf + "Error al autorizar el comprobante por ID. El ticket de acceso es NULL o idComprobante <= 0\n"; //Escribo en el archivo UtilClass.escribirArchivoLog(inf, _archivoLog, _flujoEscritura, _strLog); return(null); } return(respuesta); }
/// <summary> /// Function used to create a member's login information in an authentication cookie /// </summary> /// <param name="rememberMe">boolean used to indicate if the cookie should be stored for longer</param> /// <returns>true if the cookie was created successfully and false otherwise.</returns> protected bool CreateLoginCookie(bool rememberMe, ref List<string> errorList) { LoginTicket aTicket = new LoginTicket(); aTicket.Key = CurrentMonthIssuedKey.IssuedKey; aTicket.RemberMe = rememberMe; HttpContext.Current.Response.AppendCookie(aTicket.CreateCookieTicket()); return true; }
public static int ObtenerTicketAcceso() { MostrarVersion(); string strUrlWsaaWsdl = DEFAULT_URLWSAAWSDL; string strIdServicioNegocio = DEFAULT_SERVICIO; string strRutaCertSigner = DEFAULT_CERTSIGNER; bool blnVerboseMode = DEFAULT_VERBOSE; #region -Comment- // Analizo argumentos de linea de comandos //if (args.Length == 0) //{ // ExplicarUso(); // return -1; //} //Console.ReadKey(); //for (int i = 0; i <= args.Length - 1; i++) //{ // string argumento; // argumento = args[i]; // if (String.Compare(argumento, "-w", true) == 0) // { // if (args.Length < (i + 2)) // { // Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA"); // return -1; // } // else // { // strUrlWsaaWsdl = args[i + 1]; // i = i + 1; // } // } // else if (String.Compare(argumento, "-s", true) == 0) // { // if (args.Length < (i + 2)) // { // Console.WriteLine("Error: no se especificó el ID del servicio de negocio"); // return -1; // } // else // { // strIdServicioNegocio = args[i + 1]; // i = i + 1; // } // } // else if (String.Compare(argumento, "-c", true) == 0) // { // if (args.Length < (i + 2)) // { // Console.WriteLine("Error: no se especificó ruta del certificado firmante"); // return -1; // } // else // { // strRutaCertSigner = args[i + 1]; // i = i + 1; // } // } // else if (String.Compare(argumento, "-v", true) == 0) // { // if (args.Length < (i + 2)) // { // Console.WriteLine("Error: no se especificó modo: on|off"); // return -1; // } // else // { // blnVerboseMode = (String.Compare(args[i + 1], "on", true) == 0 ? true : false); // i = i + 1; // } // } // else if (String.Compare(argumento, "-?", true) == 0) // { // ExplicarUso(); // return 0; // } // else // { // Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase(); // Console.WriteLine("Error: argumento desconocido: {0}", argumento); // Console.WriteLine("Para obtener ayuda: {0} -?", MyApplication.Info.AssemblyName); // return -2; // } //} #endregion // Argumentos OK, entonces procesar normalmente... LoginTicket objTicketRespuesta; string strTicketRespuesta; try { if (blnVerboseMode) { Console.WriteLine("***Servicio a acceder: {0}", strIdServicioNegocio); Console.WriteLine("***URL del WSAA: {0}", strUrlWsaaWsdl); Console.WriteLine("***Ruta del certificado: {0}", strRutaCertSigner); Console.WriteLine("***Modo verbose: {0}", blnVerboseMode); } objTicketRespuesta = new LoginTicket(); if (blnVerboseMode) { Console.WriteLine("***Accediendo a {0}", strUrlWsaaWsdl); } strTicketRespuesta = objTicketRespuesta.ObtenerLoginTicketResponse(strIdServicioNegocio, strRutaCertSigner, blnVerboseMode, StoreName.TrustedPeople, StoreLocation.CurrentUser); if (blnVerboseMode) { Console.WriteLine("***CONTENIDO DEL TICKET RESPUESTA:"); Console.WriteLine(" Token: {0}", objTicketRespuesta.Token); Console.WriteLine(" Sign: {0}", objTicketRespuesta.Sign); Console.WriteLine(" GenerationTime: {0}", Convert.ToString(objTicketRespuesta.GenerationTime)); Console.WriteLine(" ExpirationTime: {0}", Convert.ToString(objTicketRespuesta.ExpirationTime)); Console.WriteLine(" Service: {0}", objTicketRespuesta.Service); Console.WriteLine(" UniqueID: {0}", Convert.ToString(objTicketRespuesta.UniqueId)); } } catch (Exception excepcionAlObtenerTicket) { Console.WriteLine("***EXCEPCION AL OBTENER TICKET:"); Console.WriteLine(excepcionAlObtenerTicket.Message); Console.ReadKey(); return(-10); } Console.ReadKey(); return(0); }