Bonjour,
Bien qu'il y ait pas mal de posts sur ce sujet, je n'ai pas réussi à résoudre mon problème.
Contexte :
- Application ASP.NET (C#) qui doit se connecter à une base SQL Server 2000 distante. J'ai une page Web classique de connexion login + password avec un bouton connexion.
- Mode d'authentification : Windows.
- IIS : j'ai décoché l'accès anonyme et juste cocher l'authentification Windows intégrée.
- Mon compte Windows est bien crée dans ma BD SQL Server et dispose des droits adéquats, tout comme l'utilisateur ASPNET.
En mode debug, quand je passe sur oConnection.Open() le navigateur "réfléchit" pendant 15-20 secondes (la barre bleue en bas du navigateur défile lentement) puis j'obtiens l'exception {"SQL Server n'existe pas ou l'accès est refusé."}
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52 /// <summary> /// Initialisation de la chaîne de connexion. /// </summary> /// <param name="p_login">Login de l'utilisateur.</param> /// <param name="p_password">Mot de passe de l'utilisateur.</param> private static void initializeConnectionString(string p_login,string p_password) { connectionString += "Server=nom_du_serveur"; connectionString += ";Database=nom_de_la_BD"; connectionString += ";User Id="+p_login; connectionString += ";Password="+p_password; connectionString += ";Integrated Security=SSPI"; } /// <summary> /// Vérifie que l'utilisateur est valide. /// </summary> /// <param name="p_login">Login de l'utilisateur.</param> /// <param name="p_password">Mot de passe de l'utilisateur.</param> /// <returns>true si l'utilisateur est valide ; false sinon.</returns> public static bool userAuthenticate(string p_login,string p_password) { initializeConnectionString(p_login,p_password); try { SqlConnection oConnection=new SqlConnection(connectionString); oConnection.Open(); oConnection.Close(); return true; } catch(Exception e) { return false; } } /// <summary> /// Lorsque l'utilisateur clique sur le bouton "Connexion". /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Connexion_Click(object sender, System.EventArgs e) { //Si l'utilisateur est correctement authentifié, on lui crée une session. if(userAuthenticate(this.TextBox_Login.Text,this.TextBox_Password.Text)) { //Code de création de session, renvoi sur la page de démarrage, etc. } }
Du coup, je sèche un peu pour savoir d'où vient le problème. (et le DNS fonctionne correctement, j'ai fait un ping sur le nom du serveur, j'obtiens bien son IP et les 4 paquets de réponse de base).
Donc si une âme charitable voit où j'ai manqué le tournant, ça serait fort aimable à elle de me re-aiguiller sur le bon chemin.
D'avance merci.
Partager