web-dev-qa-db-fra.com

Échec de la connexion. La connexion provient d'un domaine non approuvé et ne peut pas être utilisée avec l'authentification Windows.

Mes pages Web sont sur un serveur sécurisé (https) et j'essaie de connecter la base de données SQL Server 2008, qui est un serveur normal. J'écris connectionstring sur la page elle-même, pas dans le fichier web.config. Et j'obtiens l'erreur suivante: -

System.Data.SqlClient.SqlException: Login failed.
The login is from an untrusted domain and cannot be used with Windows authentication.

S'il vous plaît, aidez-moi, comment puis-je le connecter, dois-je lui créer quelques services Web?.

mon code est comme ci-dessous:

public void FillCity()
{
    SqlConnection con = new SqlConnection();
    con.ConnectionString = "integrated security=SSPI;data source=dev-fcb; user id=sa;password=password;" 
    +"persist security info=False;database=mediapro";
    con.Open();
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = new SqlCommand("select * from StateCityMaster where IsActive='1' order by CityName", con);
    DataSet ds = new DataSet();
    da.Fill(ds);
    string CityName = string.Empty;
    if (ds.Tables[0].Rows.Count > 0)
    {
        CityName = ds.Tables[0].Rows[0]["CityName"].ToString();
    }
    DataSet dset = new DataSet();
    da.Fill(dset);
    if (dset.Tables[0].Rows.Count > 0)
    {
        drpCity.DataSource = dset;
        drpCity.DataTextField = "CityName";
        drpCity.DataValueField = "CityName";
        drpCity.DataBind();
    }
    drpCity.Items.Insert(0, new ListItem("--Select--", "0"));
    con.Close();
}
10
Abhi

Votre chaîne de connexion lui dit d'utiliser le SSPI de sécurité intégré, qui utilisera les informations d'identification Windows.

Définissez Integrated Security sur false si vous allez fournir le nom d'utilisateur et le mot de passe.

En outre, envisagez de placer votre chaîne de connexion dans le fichier web.config - elle est plus sécurisée et réutilisable.

De http://msdn.Microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring(v=VS.100).aspx :

Lorsque la valeur est false, l'ID utilisateur et le mot de passe sont spécifiés dans la connexion. Lorsque la valeur est true, les informations d'identification du compte Windows actuel sont utilisées pour l'authentification . Les valeurs reconnues sont true, false, yes, no et sspi (fortement recommandé), ce qui équivaut à true . Si l'ID utilisateur et le mot de passe sont spécifiés et Integrated Security est défini sur true, l'ID utilisateur et le mot de passe seront ignorés et Integrated Security sera utilisé.

26
user985189

Vieille question, et mes symptômes sont légèrement différents, mais la même erreur. Ma chaîne de connexion était correcte (sécurité intégrée, et je ne fournis pas l'utilisateur et le mot de passe) avec data source défini sur 127.0.0.1. Cela a bien fonctionné pendant des années.

Mais récemment, j'ai ajouté une ligne dans le fichier hôte statique à des fins de test (C:\Windows\System32\drivers\etc\hosts)

127.0.0.1           www.blablatestsite.com

Supprimer cette ligne et l'erreur est parti.

J'ai un indice de cet article ( https://support.Microsoft.com/en-gb/kb/896861 ) qui parle de noms d'hôte et de bouclage. 

Une autre solution possible (si vous devez conserver cette ligne dans le fichier hosts) consiste à utiliser le nom d'hôte (tel que MYSERVER01) au lieu de 127.0.0.1 dans le data source de la chaîne de connexion.

1
Thierry_S