2013-01-05 61 views
9

私のWebページは保護されたサーバー(https)にあり、通常のサーバーであるSQL Server 2008データベースに接続しようとしています。 web.configファイルではなく、ページ自体にconnectionstringを記述しています。そして、私はエラー以下になっています: -ログインに失敗しました。ログインは信頼できないドメインからのものであり、Windows認証では使用できません

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

助けてください、どのように私はそれを接続することができ、私はそれのためにいくつかのWebサービスを作成する必要がありません。

私のコードは以下の通りです:

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

あなたのコードと場合によってはweb.configファイルの抜粋(認証)を表示してください。 –

答えて

21

あなたの接続文字列は、Windows資格情報を使用する統合セキュリティSSPIを使用するように指示されます。

ユーザ名とパスワードを入力する場合は、Integrated Securityfalseと設定します。

また、web.configファイル内に接続文字列を配置することを検討してください。これはより安全で再利用可能です。 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring(v=VS.100).aspxから

偽は、ユーザーIDとパスワードは、接続で指定されています。 trueの場合、現在のWindowsアカウントの資格情報が認証に使用されます。 認識される値はtrue、false、yes、no、およびsspi(強く推奨)です。これはtrueと等価です。 ユーザーIDとパスワードが指定され、統合セキュリティーがtrueに設定されている場合、ユーザーIDとパスワードは無視され、統合セキュリティーが使用されます。

0

古い質問と私の症状は若干異なりますが、同じエラーです。私の接続文字列はdata source127.0.0.1に設定して、正しい(統合セキュリティ、ユーザとパスワードを提供していない)。それは長年にわたってうまくいった。

しかし、最近、私はテスト目的(C:\Windows\System32\drivers\etc\hosts

127.0.0.1   www.blablatestsite.com 

は、この行を削除すると、エラーがなくなっているため、静的なホストファイルに行を追加しました。

ホスト名とループバックに関するこの記事(https://support.microsoft.com/en-gb/kb/896861)の手がかりを得ました。

接続文字列のdata source127.0.0.1の代わりにホスト名(MYSERVER01など)を使用することも可能です(ホストファイルにその行を保持する必要がある場合)。

関連する問題