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

C# Discussion :

Problème d'accès, entre WinForms .Net Framework et SQL Server


Sujet :

C#

  1. #1
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 444
    Points : 2 777
    Points
    2 777
    Par défaut Problème d'accès, entre WinForms .Net Framework et SQL Server
    Bonjour tout le monde,

    Lors de la tentative de lire une table via un DataSet, l'instruction Fill de DataTableAdapter bute sur un problème de droits :

    Message : "Microsoft.Data.SqlClient.SqlException*: 'A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - La chaîne de certificats a été fournie par une autorité qui n’est pas approuvée.)'"

    J'ai lu
    que ce serait une bonne idée de mettre à jour le pilote ODBC, bien que j'étais persuadé que Windows Update s'en occupait automatiquement.

    Alors j'ai tenté ma chance à partir de là :
    https://learn.microsoft.com/fr-fr/sq...ad-for-windows

    et ça n'a rien résolu.
    Dois-je en conclure que c'était une fausse piste ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 322
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 322
    Points : 1 928
    Points
    1 928
    Par défaut
    il faut probablement rajouter "Integrated Security=true;" à ta chaine de connexion et éventuellement "encrypt=false;"

    Edit: sur ton 1er lien, tu es peut-être passer à côté de ces solutions:
    ajout de TrustServerCertificate=true à la chaine de connexion
    ou
    ajout de Encrypt = Optional; à la chaine de connexion (qui se rapproche de ce que j'ai évoqué au dessus)

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 880
    Points
    1 880
    Par défaut
    Il faut bien lire le message d'erreur: c'est un problème de certificat SSL non trusté manifestement.

  4. #4
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 444
    Points : 2 777
    Points
    2 777
    Par défaut
    Citation Envoyé par binarygirl Voir le message
    Il faut bien lire le message d'erreur: c'est un problème de certificat SSL non trusté manifestement.
    En effet, et ça me paraissait crédible que le certificat soit intégré à l'installation de SQL Server ou de son pilote (qui le plus souvent vont de pair d'ailleurs).

    C'est pour ça qu'une mise à jour ne me paraissait pas plus absurde que ça.

    Est-ce qu'il faut envisager d'installer un certificat à part ?

  5. #5
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 444
    Points : 2 777
    Points
    2 777
    Par défaut
    Citation Envoyé par umfred Voir le message
    il faut probablement rajouter "Integrated Security=true;" à ta chaine de connexion et éventuellement "encrypt=false;"
    Je viens de regarder : il y est.
    J'ai utilisé les chaînes proposées automatiquement. C'est vrai qu'un jour elles peuvent être buguées.

    Edit: sur ton 1er lien, tu es peut-être passer à côté de ces solutions:
    ajout de TrustServerCertificate=true à la chaine de connexion
    ou
    ajout de Encrypt = Optional; à la chaine de connexion (qui se rapproche de ce que j'ai évoqué au dessus)
    Ah, ça, en tout cas étymologiquement pour le premier, ça ressemble à ce dont on nous parle.

    Bon, je regarde.

  6. #6
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 444
    Points : 2 777
    Points
    2 777
    Par défaut
    Bien vu !
    Dans la chaîne de connexion j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ;TrustServerCertificate=true
    et le code a retourné les données.
    Je voyais bien qu'il y avait un problème d'autorisation, mais c'est la mise en forme qui ne me venait pas.

    Il a été question de mon "premier lien".
    Mais je ne me rappelle avoir mis que celui de la page de téléchargement. C'était là ?

    Euh ... À ce stade, si ça vous dit on tenterait bien l'obtention des données par l'interface graphique ?

    Ça ne retourne pas d'erreur, mais je n'ai qu'une ligne vide, en général on en met une pour l'insertion de données.

    DatagridView est basé sur un Dataset.
    Dans le menu de la balise active du DatagridView, si je clique sur "Aperçu des données", et qu'ensuite dans la boîte de dialogue je clique sur le bouton "Aperçu", je vois les données.

    Du coup, en exécutant l'application je m'attends à voir les données sur le formulaire, mais comme je disais ce n'est pas le cas (bien sûr j'ai mis le code en commentaire).

    ***
    Concernant .Net Core, si j'ai bien lu Microsoft dit qu'on doit pouvoir obtenir les données par code, mais là l'erreur est que le Dataset n'existe pas.
    Dans l'interface de création du DataSet je peux prévisualiser les données, mais dans le code du formulaire ceci échoue dès la première ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                DataSet1 ds = new DataSet1();
                dataGridView1.DataSource = ds.Tables[0];
    Il me semble bien que l'espace de noms est le bon.
    Alors il faudra que je relise bien ce qu'ils disent, et au pire si je ne m'en sors pas avec, le projet .Net Framework fonctionne.

  7. #7
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 444
    Points : 2 777
    Points
    2 777
    Par défaut
    Bon, j'ai effacé les objets de lien aux données pour tout refaire, et cette fois l'application affiche les données par l'interface graphique.
    Il va me rester à lire plus attentivement ce qui est dit au sujet de .Net Core.

    Merci beaucoup à vous deux, si j'avais dû continuer à chercher seul je crains bien que j'en aurais eu pour un sacré bout de temps.

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 322
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 322
    Points : 1 928
    Points
    1 928
    Par défaut
    ton 1er lien c'était celui sur le "là" > https://learn.microsoft.com/fr-fr/tr...e-db-driver-19

  9. #9
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 444
    Points : 2 777
    Points
    2 777
    Par défaut
    Ah, oui. On dirait que j'ai eu un peu de mal à garder le fil, là-dessus, du coup avoir mis un texte de deux lettres n'a pas suffisamment attiré mon attention, sur une page que manifestement j'ai lue trop vite. Oups.

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

Discussions similaires

  1. Problème d'accés entre ma BDD et Owncloud
    Par KenZay dans le forum Administration
    Réponses: 0
    Dernier message: 08/03/2016, 10h19
  2. Problème de connexion entre une application web et SQL Server
    Par BM_Marwen dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 03/03/2013, 18h32
  3. [7.5] .net Framework 4 / SQL Server 2008 (R1)
    Par CUCARACHA dans le forum IIS
    Réponses: 0
    Dernier message: 17/05/2010, 10h37
  4. Problème de communication entre winForm
    Par lecyberax dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 05/07/2007, 17h40
  5. Réponses: 10
    Dernier message: 04/04/2006, 01h21

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