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.

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.
  }
}
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é."}

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.