|    
			
				22/06/2009, 04:08
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: marzo-2007 
						Mensajes: 38
					 Antigüedad: 18 años, 7 meses Puntos: 0 |  | 
  |  Obtener datos de titular de DNI-e  
  Buenos días señores.
 Estoy con un desarrollo de un proyecto web (aplicación –portal clientes- web ASP.NET Framework 3.5, con WXP en desarrollo, y W2003 en producción) en empresa de Seguros.
 
 Mi aplicación requiere autenticación de clientes utilizando DNI-e.
 
 Buscando documentación por Internet, no he visto nada de código en tecnología .Net para recuperar los datos del titular del DNI-electrónico que se conecta a la página aspx.
 
 Entiendo que los pasos son los siguientes:
 
 Primeramente, se requiere el certificado de AC RAIZ DNIE, el usuario tendrá que introducir el DNIe en el lector de tarjetas e introducir el PIN.
 
 Después, en el código de servidor de la página, tendríamos que recuperar los datos del titular del DNI-e para saber qué persona se ha conectado. En mi caso, nombre Exxx Pxxxx Vxxxx, DNI: 50…..M
 
 Este es el código C# para la página aspx (ASP.NET) que debe comprobar los datos del usuario que se ha conectado al portal de cliente con DNI electrónico.
 
 public partial class ComprobarCertificado : System.Web.UI.Page
 {
 protected void Page_Load(object sender, EventArgs e)
 {
 HttpClientCertificate certificado = Request.ClientCertificate;
 certificado = Context.Request.ClientCertificate;
 certificado = HttpContext.Current.Request.ClientCertificate;
 
 if (!this.IsPostBack)
 {
 HttpClientCertificate cs = certificado;
 
 if (cs.IsPresent)
 {
 //'Get the Organization (O) field from the Subject section.
 //' certData.Text = cert.Get("Subject O")
 
 Response.Write("ClientCertificate Settings:
 ");
 Response.Write("Certificate = " + cs.Certificate + "
 ");
 Response.Write("Cookie = " + cs.Cookie + "
 ");
 Response.Write("Flags = " + cs.Flags + "
 ");
 Response.Write("IsPresent = " + cs.IsPresent + "
 ");
 Response.Write("Issuer = " + cs.Issuer + "
 ");
 Response.Write("IsValid = " + cs.IsValid + "
 ");
 Response.Write("KeySize = " + cs.KeySize + "
 ");
 Response.Write("SecretKeySize = " + cs.SecretKeySize + "
 ");
 Response.Write("SerialNumber = " + cs.SerialNumber + "
 ");
 Response.Write("ServerIssuer = " + cs.ServerIssuer + "
 ");
 Response.Write("ServerSubject = " + cs.ServerSubject + "
 ");
 Response.Write("Subject = " + cs.Subject + "
 ");
 Response.Write("ValidFrom = " + cs.ValidFrom + "
 ");
 Response.Write("ValidUntil = " + cs.ValidUntil + "
 ");
 Response.Write("What's this = " + cs.ToString() + "
 ");
 Response.Write("Codificacion = " + cs.CertEncoding + "
 ");
 
 X509Certificate desc = new X509Certificate(cs.Certificate);
 
 string resultsTrue = desc.ToString(true);
 Response.Write("
 despues de sacar flujo de bytes : " + resultsTrue);
 Response.Write("
 Hash string : " + desc.GetCertHashString());
 Response.Write("
 Algoritmo (parametros): " + desc.GetKeyAlgorithmParametersString());
 Response.Write("
 Clave publica: " + desc.GetPublicKeyString());
 
 }
 else if (!certificado.IsValid)
 {
 Response.Write("el certificado no es valido" + "
 ");
 }
 else
 Response.Write("No se ha encontrado certificado" + "
 ");
 
 Les agradecería que me enviaran cuanta información técnica puedan de la forma de recuperar los datos del titular de DNI-e.
 
 Quedo a la espera de cualquier observación técnica que puedan aportarnos, será de gran ayuda en este momento del proyecto.
 
 Muchas gracias de nuevo y saludos cordiales.
   Última edición por alhambraeidos; 25/06/2009 a las 00:28
     |