2013-01-05 10 views
9

Le mie pagine Web sono su server protetto (https) e sto tentando di connettere il database di SQL Server 2008, che è un normale server. Sto scrivendo connectiontring sulla pagina stessa, non nel file web.config. E sto ottenendo seguente errore: -Accesso fallito. Il login proviene da un dominio non attendibile e non può essere utilizzato con l'autenticazione di Windows

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

prega di aiuto, come posso collegarlo, fa ho da fare alcune webservices per esso.

il mio codice è il seguente:

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(); 
} 
+1

Mostraci il tuo codice ed eventualmente un estratto dal tuo file web.config (autenticazione). –

risposta

21

la stringa di connessione sta dicendo che per utilizzare la protezione integrata SSPI, che utilizzerà le credenziali di Windows.

Impostare Integrated Security a false se si sta fornendo nome utente e password.

Inoltre, considerare di inserire la stringa di connessione all'interno del file web.config: è più sicuro e riutilizzabile.

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

Quando falso, ID utente e la password sono specificati nella connessione. Quando è true, le credenziali dell'account Windows corrente vengono utilizzate per l'autenticazione. I valori riconosciuti sono true, false, yes, no e sspi (fortemente consigliato), che è equivalente a true. Se l'ID utente e la password sono specificati e Integrated Security è impostato su true, l'ID utente e la password verranno ignorati e verrà utilizzata la sicurezza integrata.

0

Vecchia domanda ei miei sintomi sono leggermente diversi, ma lo stesso errore. La mia stringa di connessione era corretta (sicurezza integrata e non fornisco utente e pwd) con data source impostato su 127.0.0.1. Ha funzionato bene per anni.

Ma recentemente ho aggiunto una riga nel file host statico a scopo di test (C:\Windows\System32\drivers\etc\hosts)

127.0.0.1   www.blablatestsite.com 

rimozione di questa linea e l'errore è andato.

Ho un indizio da questo articolo (https://support.microsoft.com/en-gb/kb/896861) che parla di nomi host e loopback.

Altre possibili correzioni (se è necessario mantenere tale riga nel file hosts) è utilizzare il nome host (ad esempio MYSERVER01) anziché 127.0.0.1 nello data source della stringa di connessione.

Problemi correlati