20

私の Web ページはセキュリティで保護されたサーバー (https) にあり、通常のサーバーである SQL Server 2008 データベースに接続しようとしています。web.config ファイルではなく、ページ自体に接続文字列を書いています。そして、次のエラーが発生しています:-

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

4 に答える 4

37

接続文字列は、Windows 資格情報を使用する統合セキュリティ SSPI を使用するように指示しています。

ユーザー名とパスワードを提供する場合はに設定Integrated Securityします。false

また、接続文字列を web.config ファイル内に配置することを検討してください。より安全で再利用可能です。

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

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

于 2013-01-05T18:24:57.897 に答える