none
Problemas con el Lector de Tarjetas Inteligente y con las dll al agregarlas

    Pregunta

  • Hola muchas gracias por adelantado tengo una serie de dudas:

    Mi objetivo es utilizar la Lectora de Tarjetas Inteligente "LTI" para meter el DNI digital y sacar los datos y almacenarlos en un fichero pulsando un button. La LTI funciona por USB

    Los problemas que tengo es:

    1 No se que liberias, metodos, tengo que utilizar para poder utilizar la LTI he mirado enlaces y no he sacado nada en claro. Lo unico que me ha quedado claro es que ese sistema esta cifrado, pero tampoco lo he llegado a comprender.

    2 He mirado las librerias que utiliza la LTI son: setupapi.dll, winscard.dll, wudfusbsbccidDriver.dll, las he intentado agregar las dll en referencia a mi proyecto pero cuando la selecciono en EXAMINAR me dice: "No se puede agregar una referencia a: ... , Asegurese de que tiene acceso al archivo y de que es un esnamblado o componente COM valido, He intentado integrar las DLL no administradas por medio de:

    [DllImport("Winscard.dll")]
    
    Pero no se si lo hago bien, tampoco me sale winscard wc = new winscard(); ni los metodos que le pertenecen a esa DLL ya me he mirado enlaces tipo
    http://msdn.microsoft.com/es-es/library/be80xase.aspx

    http://msdn.microsoft.com/es-es/library/843s5s5x.aspx

    y aun asi no me ha quedado claro, alguien me podria poner un ejemplo con esa dll WINSCARD.DLL en invocarla y sacar todos sus métodos.

    Referente a la LTI, como puedo hacer para reconocerla por el USB, detectarla y poder utilizar y descifrar dicha codificación, si poneis algun enlace por favor que este no reconduzca otras sino el que soluciona el problema, ya que ya me he mirado muchos ejemplos y uno se pierde o por lo menos yo, ademas he visto que ponen ejemplos con otros idiomas y el que utilizo yo es Visual Studio C# Express 2010.

    Y una ultima cosa, porque nunca puedo utilizar todas las librerias que hay en mi ordenador la inmensa mayoria no me lo permite agregarlas por referencia, por el fallo que os he dicho antes. Gracias por vuestro tiempo.

    domingo, 07 de agosto de 2011 23:23

Todas las respuestas

  • Hola 

     

    Mira estos dos link

     

    http://www.aspfree.com/c/a/C-Sharp/Smart-Cards-in-.NET-Part-2/

    http://www.aspfree.com/c/a/.NET/Smart-Cards-in-NET-Part-3/

     

    Saludos,


    phurtado
    lunes, 08 de agosto de 2011 6:41
    Moderador
  • Hola, estoy mirando los links que me has enviado, así a vista rápida, veo claramente que el proyecto a descargar, no funciona correctamente, así que daré paso a separarlo y haber que pasa, pero por lo que he visto segun esto:

     

    		// WinSCard API's to be imported
    		[DllImport("WinScard.dll")]
    		public static extern int SCardEstablishContext(uint dwScope, int nNotUsed1, int nNotUsed2, ref int phContext);
    		[DllImport("WinScard.dll")]
    		public static extern int SCardReleaseContext(int phContext);
    		[DllImport("WinScard.dll")]
    		public static extern int SCardConnect(int hContext, string cReaderName, uint dwShareMode, uint dwPrefProtocol, ref int phCard, ref int ActiveProtocol);
    		[DllImport("WinScard.dll")]
    		public static extern int SCardDisconnect(int hCard, int Disposition);
    		[DllImport("WinScard.dll")]
    		public static extern int SCardListReaderGroups(int hContext, ref string cGroups, ref int nStringSize);
    		[DllImport("WinScard.dll")]
    		public static extern int SCardListReaders(int hContext, string cGroups, ref string cReaderLists, ref int nReaderCount);
    		[DllImport("WinScard.dll")]
    		public static extern int SCardFreeMemory(int hContext, string cResourceToFree);
    		[DllImport("WinScard.dll")]
    		public static extern int SCardGetAttrib(int hContext, uint dwAttrId, ref byte[] bytRecvAttr, ref int nRecLen);
    
    


    Como ya dije que no se como saca los métodos y me gustaria saber como se hace eso ante una dll que esta cerrada y no se puede agregar por referencia, por ejemplo x.dll tiene unos metodos pongamos: string m1 (string), string m2 (string), int m3 (int, string), int m4 (int, string), long m5(int), string m6 (string, int) como se puede observar ante estos metodos y la dll inventados hay metodos que comparten parametros, como sabria llamar a cada uno de ellos en base a lo que quiero conseguir si tengo que hacer el llamamiento al metodo por medio de: [DllImport("x.dll")] public static extern ... ... (...); como es obvio si la dll no la conozco no sabria que existen esos 6 metodos que he escrito en las lineas anteriores, ni tampoco sus parametros, existe algun sistema que me desvele, los metodos que hay, los parametros que tienen y los parametros que devuelve e incluso si posee alguna descripción o existe alguna pagina web donde me indique esos parametros y la descripción de los metodos.

     

    Ahora luego revisare si he podido o no acceder a la LTI, espero respuesta. Ya que las cuestiones que aborde en la primera linea, siguen con neblina. Gracias.

     

    viernes, 12 de agosto de 2011 10:22
  • Ya he comprobado el programa de esos link, no me funciona, no soluciono nada, integro el codigo en el mio y tampoco funciona, alguien sabe contestar a las dudas que plantee. Por ahora estoy sin solución. A todas las dudas que plantee
    viernes, 12 de agosto de 2011 20:40