IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#][VS2005]Récupérer les info d'un certificat avec FX 2.0


Sujet :

Windows Forms

  1. #1
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut [C#][VS2005]Récupérer les info d'un certificat avec FX 2.0
    Bonjour,

    Voila désolé si ce sujet est un peu vague voir impossible mais je ne sais pas trop comment m'y prendre alors j'aimerais bien votre avis!

    J'aimerais si c'est possible c'est au démarrage d'un winform de charger les données qui se trouve dans un certificat* installé sur la machine es-ce que c'est possible?

    Genre récupérer le nom de la personne et des info comme ca?

    *certificat créer par la CA de windows 2003 serveur (certificat d'authentification de client)

    Merci

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    c'est du X509 ?

  3. #3
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Citation Envoyé par bidou
    c'est du X509 ?
    oui effectivement!

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Tu dois pouvoir t'en tirer avec la classe X509Certificate dans le Fx 1.1 ou X509Store dans le Fx 2.0.

  5. #5
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Citation Envoyé par bidou
    Tu dois pouvoir t'en tirer avec la classe X509Certificate dans le Fx 1.1 ou X509Store dans le Fx 2.0.
    Je travaille avec le framework 2.0!

    Ca doit donc pouvoir être possible! Donc c'est génial...

    Aurais-tu un lien, un tuto :

    Merci

  6. #6
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    regarde là s'il n'y a pas ton bonheur
    http://msdn2.microsoft.com/library/system.security.cryptography.x509certificates.x509certificate2collection.aspx

  7. #7
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Citation Envoyé par Morpheus
    Bonjour

    Malgré la division des forums .NET, n'oublliez pas qu'il y a des règles

    http://www.developpez.net/forums/viewtopic.php?t=326092

    Merci d'utiliser les tags et de donner un titre correct à votre message

    A+
    Mes excuses Morpheus (j'hésitais sur quelle tag mettre) ca te convient comme ca?

    A mercredi et surtout 3x merde pour la présentation!

    regarde là s'il n'y a pas ton bonheur
    http://msdn2.microsoft.com/library/system.security.cryptography.x509certificates.x509certificate2collection.aspx
    Merci je vais regarder tous ca!

  8. #8
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Ok vachement bien cette exemple mais y a un truc qui m'échappe dans tous ca:

    Quand on veux créer un cert on doit donner un nom, e-mail, service, département, pays,...

    Mais quand on l'accepte sur le serveur on ne voit pas ces informations on voit juste l'ID! ca ok

    Mais alors comment fait-on pour lire ces info? je ne comprend pas trop car même si on ouvre le certificat ce info ne sont pas présente (c'est peut-être normal en faite sécurité oblige je pense).

    Mais dans mon prog c# je n'arrive pas à trouver l'objet, méthode qui me permet de récupérer ces infos? Savez-vous comment on peux récupérer ces info?

    Je continue à chercher de mon coté

    Merci

  9. #9
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    J'ai bien trouvé:

    dans l'objet X509Certificate2

    Ca me renvoit tous à la suite mais il est dit lors de la compilation que cette méthode est obsolète...

    Warning 1 'System.Security.Cryptography.X509Certificates.X509Certificate.GetName()' is obsolete: 'This method has been deprecated. Please use the Subject property instead. http://go.microsoft.com/fwlink/?linkid=14202' C:\Documents and Settings\tc\Bureau\St Gallen\Visual Studio Projects\dev\ConsoleApplication1\ConsoleApplication1\Program.cs 29 64 ConsoleApplication1
    Qu'es ce qui la remplace? le savez-vous?

  10. #10
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    GetNameInfo maybe

  11. #11
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Déjà essayé mais ca te renseigne sur qui a émis le certificat (CA) pas sur la personne qui a crée le certif

    J'ai trouvé il s'agit de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x509.Subject.tostring()
    Seul différence qu'on voit avec l'autre c'est qu'il y a des , entre chaque champs renseigné par la personne qui a demandé le certif!

    Ca sera plus facile pour les séparés!

  12. #12
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Ok je suis arrivé a ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     try{
     
    		    X509Store store = new X509Store("MY",StoreLocation.CurrentUser);
                store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
                X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
                X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid,DateTime.Now,false);
     
     
                if (fcollection.Count != 1)
                {
                    X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Test Certificate Select", "Select a certificate from the following list to get information on that certificate", X509SelectionFlag.MultiSelection);
                    int toto = scollection.Count;
                    X509Certificate2 x509 = new X509Certificate2(scollection[0]);
                    if (x509.GetNameInfo(X509NameType.SimpleName, true) == "POWERneting")//Test si le certificat appartient a notre CA
                    {if(x509.Verify()==false)
                     {error();}
                        extractCertif(x509);}
                    else
                        error();
     
                } 
                else
                {
                    X509Certificate2 x509 = new X509Certificate2(fcollection[0]);
                    if (x509.GetNameInfo(X509NameType.SimpleName, true) == "POWERneting") //Test si le certificat appartient a notre CA
                    {
                        if (x509.Verify() == false)
                            error();
                        extractCertif(x509);
                    }
                    else
                        error();
                }
                }
                catch (CryptographicException)
                {
                    error();
                }
    Maintenant comment faire pour être sure que le certif est valide?
    ca suffit?

    J'ai déjà testé qu'il appartienne a notre CA (POWERneting) masi je ne sais pas comment être sure qu'il est bien vrai?

    Merci

  13. #13
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    OK ben le prob est résolu! Vu que que mon code vérifie bien la validité de mon certificat

    Merci bidou!

    ++

    Thierry

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les infos d'un form avec request
    Par DaCoolG dans le forum ASP
    Réponses: 1
    Dernier message: 10/11/2011, 21h12
  2. Réponses: 3
    Dernier message: 28/10/2004, 08h39
  3. Delphi - récupérer les infos d'un utilisateur
    Par jlf dans le forum Débuter
    Réponses: 2
    Dernier message: 26/06/2004, 11h34
  4. Récupérer les infos sur un fichier audio
    Par Halleck dans le forum Windows
    Réponses: 13
    Dernier message: 17/04/2004, 18h39
  5. Réponses: 6
    Dernier message: 23/12/2003, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo