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

Accès aux données Discussion :

[C#/ASP] Pourquoi ma connexion ASP-SqlServer est impossible ?


Sujet :

Accès aux données

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 10
    Points
    10
    Par défaut [C#/ASP] Pourquoi ma connexion ASP-SqlServer est impossible ?
    bonjour.
    Je developpe une appli aspx avec VS 2003 sur une machine A et j'ai un serveur SQL 2000 sur une machine B.
    J'essaie de réaliser une connexion avec SqlConnection, mais j'obtiens toujours le même message d'erreur :
    SQL Server n'existe pas ou l'accès est refusé
    L'erreur se produit lors de l'appel de la méthode SqlConnection.Open()

    Le même code (meme chaine de connexion, meme declaration, etc...) en WinForm fonctionne !

    Voici le code en question, on ne peut pas faire plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SqlConnection oSqlConnection;
    oSqlConnection = new SqlConnection("server=MonServer; User
     ID=monUser; Password=LeMotMagique ;database=MaDataBase");
    oSqlConnection.Open();
    Je pense que le probleme vient du fait qu'il s'agisse d'une application ASPX. Il semble que IIS utilise un compte local specifique lors de l'execution des requetes a la BDD. (quelquechose comme MaMachine\ASPNET). Le probleme c'est qu'il n'est pas autorisé sur le serveur SQL.

    Donc si on récapitule :
    1. Si j'ai raison a propos de l'utilisation d'un compte spécifique par IIS :
      • 1a) Comment forcer IIS a utiliser une authentification SQL classique, et passer outre l'authentification windows
      • 1b) sinon, si c'est impossible, comment autoriser le compte ASPNET qui est local, (et donc spécifique a ma machine), sur le serveur SQL
    2. Si j'ai tort a propos de l'utilisation d'identité par IIS, est ce que quelqu'un sait ce que cela pourrait être.
    Merci.

  2. #2
    Membre actif Avatar de neuropathie
    Inscrit en
    Janvier 2005
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 223
    Points : 201
    Points
    201
    Par défaut
    Sql server est installé cherz toi en Mixed mode authentification ou bien en windows authentification, si c'est mixed mode, tu dois furnir le mot de passe de l'utilisateur par défaut nommé "sa" dans ta connection string

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Sql Server est installé en Mixed Mode authentication. Cependant le nom d'utilisateur que je spécifie dans ma connection string est en authentification Sql Server uniquement.
    Mais ma connection string fonctionne avec du winform et pas avec de l'ASP.
    J'ai aussi essayé avec l'utilisateur SA, même probleme, ca fonctionne en Winform et pas en ASP.

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Gloria halleluja osanna, dieu soi loué. Gloire a dieuuuu au plus hauuut des cieuuuux...
    Peut-être l'aurez vous deviné mais j'ai trouvé une solution.
    Le problème était bien au niveau de l'identité utilisé par IIS. Lors de l'exécution du code, IIS s'exécutait sous le compte "LOCAL\ASPNET". Or ce compte est inconnu pour la base de donné SQL Server.

    Une des solution consiste bien a autoriser l'utilisateur ASPNET a accéder a la base de donnée, mais ce n'est pas la solution que j'ai adopté, alors je ne sais pas comment on fait.

    La deuxième solution consiste a utiliser l'identité windows de l'utilisateur qui affiche la page. Apparemment cette solution nécessite que le client Web soit internet explorer, et que les utilisateurs dont on emprunte l'identité soit membres de l'active directory. Pour mettre en place cette solution il faut spécifier la ligne suivante dans le fichier Web.Config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <identity 
      impersonate="true" 
    />
    (Informations complémentaires sur l'emprunt d'identité dans la MSDN a l'article : Emprunt d'identité ASP.NET )

    Il faut ensuite indiquer a IIS que la connexion au site ne se fait pas via des connexions anonymes. Pour le faire :
    Panneau de Configuration > outils d'administration > service internet(IIS)
    Éditez les propriétés du site pour lequel vous avez besoin que IIS utilise l'emprunt d'identité :
    Sécurité du répertoire > Connexion Anonymes et contrôle d'authentification > modifier.
    une fenêtre s'ouvre. Décochez "connexion Anonyme". Choisissez une méthode pour l'accès authentifié (Authentification digest ou authentification de base), ainsi que le domaine ou se trouve les user devant être authentifié.

    Voila, comme ca IIS se charge d'identifier les utilisateurs qui affichent la page WEB, le processus qui s'exécute avec leur identité, et ainsi lors de la connexion a la base s'identifie avec leur compte. Ainsi la chaîne de connexion suivante est suffisante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Integrated Security=SSPI; server=MonServer; database=MaDataBase";
    Notez que les utilisateurs du domaine doivent avoir l'autorisation d'accéder a la base SQL aussi et que le serveur SQL accepte les authentification Windows.

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

Discussions similaires

  1. Connexion BD SQLSERVER à distant IMPOSSIBLE
    Par killysui dans le forum Accès aux données
    Réponses: 5
    Dernier message: 21/07/2008, 11h53
  2. connexion à la destinataire est impossible
    Par dodobn dans le forum Connexions aux bases de données
    Réponses: 2
    Dernier message: 09/11/2007, 13h30
  3. Réponses: 1
    Dernier message: 14/06/2007, 15h47
  4. [VB.Net 1.1/ASP.Net/Excel] Pourquoi mon exécution de code est si lente ?
    Par calison3 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 12/08/2006, 12h41

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