begin process at 2012 05 28 22:46:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

Javascript et ActiveX

 > 

ActiveX

 > 

ActiveX en JavaScript pour authentification : afficher les certificats numériques et envoyer des données en HTML


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ActiveX en JavaScript pour authentification : afficher les certificats numériques et envoyer des données en HTML

mardi 22 mars 2011 à 15:51:42 | ActiveX en JavaScript pour authentification : afficher les certificats numériques et envoyer des données en HTML

lebillaj

Bonjour la communauté,

Mon projet est de développer un activeX qui va permettre à un utilisateur de
s'authentifier sur un portail web pour ensuite profiter d'applications (sur un SOA).

Pour cela, cet activeX va,dès la connexion, chercher les certificats dans le magasin personnel de certificats d'IE, les afficher à l'utilisateur. L'utilisateur en selectionnera un valide et enverra les informations au portail web en cliquant sur un bouton "Submit".

Pour le moment j'ai fait en C# un main qui va justement chercher les informations utiles dans le magasin du user et les stocke dans un tableau. Ce code est commenté et dispo ci-dessous.

Mes questions sont les suivantes : Je ne sais pas quelles sont les étapes à suivre ensuite.

Mes contraintes sont de faire un JavaScript qui va prendre ces différents éléments pour les insérer dans une page HTML (avec balise Object).
Auriez vous deja traité un cas similaire sur un des forum ?
Comment fais t on justement ce JavaScript ?
Suis-je à coté de la plaque finalement ? :)

Merci par avance,
Johan LB

Mon code est d'ailleurs le suivant :

using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading;
using Microsoft.Win32;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates; /* Biblio la plus importante */


namespace ExportCertif
{
public class CertExport // Création de la classe CertExport
{
static void Main()
{
try
{
X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
// Appel au magasin utilisateur local
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
// Ouverture du magasin seulement s'il contient des certificats

X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
// Déclaration de la collection de certificats
X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
// Tri de cette collection par date

string[] TabCNAutoriteCertification; // Déclaration du tableau des CN d'AC
string[] TabNomObjetCertificat; // Déclaration du tableau des CN de certificats
string[] TabDateExpiration; // Déclaration du tableau des dates d'expiration des certificats
string[] TabClePublique;



TabCNAutoriteCertification = new string[collection.Count]; // Taille des Tableaux = nombre d'éléments dans la collection
TabNomObjetCertificat = new string[collection.Count];
TabDateExpiration = new string[collection.Count];
TabClePublique = new string [collection.Count];

foreach (X509Certificate2 x509 in collection) // A appliquer a tous les certificats de la collection, du magasin
{
// ############# Le nom de l'autorité ###########################

TabCNAutoriteCertification[collection.IndexOf(x509)] = x509.Issuer;
// Je prends l'Issuer de chacun et je le mets dans un tableau
Console.WriteLine("Le nom de l'autorité emettrice du certificat est : {0}", TabCNAutoriteCertification[collection.IndexOf(x509)],Environment.NewLine);
// J'affiche mon tableau d'Issuer


// ############## Le nom de l'objet signé #######################

TabNomObjetCertificat[collection.IndexOf(x509)] = x509.Subject;
// Je prends le nom de l'objet signé par le certificat
Console.WriteLine("Le nom de l'objet signé par le certificat : {0}", TabNomObjetCertificat[collection.IndexOf(x509)], Environment.NewLine);
// J'affiche mon tableau d'objets


// ############### Les dates d'expiration #######################

TabDateExpiration[collection.IndexOf(x509)] = x509.GetExpirationDateString();
// Je prends les dates d'expiration de chacun et je les mets ds un tableau
Console.WriteLine("La date d'expiration du certificat est : {0}", TabDateExpiration[collection.IndexOf(x509)],Environment.NewLine);
// J'affiche mon tableau


X500DistinguishedName dname = new X500DistinguishedName(x509.SubjectName);
// Autre methode pour afficher le nom de mon certif
Console.WriteLine("Voici le nom de l'autorité émettrice du certif: {0}{1}", dname.Name, Environment.NewLine);
// Je l'affiche
// x509.Reset();


// ############### Clés publiques #################################

byte[] results = x509.GetPublicKey(); // Clé Publique en tableau d'entiers
int i;
String sChaine="";
for(i=0;i<results.Length-1;i++){ // Boucle For pour en faire un string !!!!
sChaine=sChaine+ results[i] +"F";
}
Console.WriteLine("Ma clé publique est : {0}", sChaine);

}


Cette discussion est classée dans : string, tableau, using, collection, x509


Répondre à ce message

Sujets en rapport avec ce message

Urlencode [ par Clem ] Existe il en javascript une fonction comme urlencode en php ?Sinon est il possible d'en faire une en traduisant la fonction vb : Function ReplaceStrin Peut on modifier une cellule d'un tableau ??? [ par webgagner ] Est-il possible de modifier le contenu d'une celulle d'un tableau apres clic sur un bouton de la celule voisine??? Style et Script [ par Pocel ] Débutant,je voudrai changer la couleur de la cellule d'un tableau à la sélection de cette dernière. Pour le moment j'applique un style au onClick, mai tableau à 2 dimensions [ par meskiki ] Comment faire pour créer un tableau à deux dimensions?meskiki PROBLEMES DE CALQUES --- URGENT ! ! ! [ par Foub12 ] Bonjour ! J'aimerais pouvoir afficher un calque au dessus de mon tableau sans que cela perturbe la fonction Onclick qui se trouve dans la cellule de m un truc intéressant !! [ par mickelo ] ben en fait moi j'ai un tableau avec des données qui proviennent d'une base SQL piloté par des ASP, etc ...bref ma liste de données et tellement longu intéressant !!! [ par mickelo ] ben en fait moi j'ai un tableau avec des données qui proviennent d'une base SQL piloté par des ASP, etc ...bref ma liste de données et tellement longu Figer une ligne de tableau ?? [ par mickelo ] Y a t-il moyen de figer une ligne de tableau pour que lorsqu'on défile la page grace a l'ascenseur cette ligne reste en haut de page, une sorte de rec Figer une ligne de tableau [ par mickelo ] Y a t-il moyen de figer une ligne de tableau pour que lorsqu'on défile la page grace a l'ascenseur cette ligne reste en haut de page, une sorte de rec Figer une ligne de tableau [ par mickelo ] Y a t-il moyen de figer une ligne de tableau pour que lorsqu'on défile la page grace a l'ascenseur cette ligne reste en haut de page, une sorte de rec


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales