2011-06-24 2 views
1

私のasp.net WebアプリケーションのSQLデータベースに対してWindow認証を使用しています。私のウェブサイトを別のコンピュータに展開した後、データベースに接続できません。 web.configファイルでユーザー名とパスワードを設定するウィンドウ認証のプロパティ。SQL Serverとasp.netのウィンドウ認証

答えて

4

あなたのシナリオのようですか?

  • ローカルマシン上に構築されたIISのWebアプリ
  • Webアプリケーションは、ローカルマシン上で
  • Webアプリケーションのユーザーはまた、有効なデータベース・ログイン
  • Webアプリケーションのユーザーを持っても、データベースにWindows認証
  • Webアプリケーションの協議を使用しています資格情報は信頼できる接続を介してデータベースに渡されます

すべてがうまくいきます。次に、データベースとIISが同じサーバー上に存在しない別の環境に移動し、IISが渡している資格情報をデータベースで認識できなくなります。

もしそうなら、数か月前に私の地獄へようこそ。問題は、いったん2つのプロセスが同じボックスになければ、もはや互いを信頼しないということです。 2つのプロセスがサーバーの境界を超えて相互に信頼できるようにするには、ネットワーク管理のアクセス許可が必要です。残念ながら、私はそれについてのブログが、一般的な手順なかった

  • 信頼できるとして(Active Directoryの設定)IISサービスアカウントをマークしたのNetBIOS名またはFQDNのいずれかにサービスプリンシパル名(SPN)を設定
  • 何かが、彼らは漠然と回想のために互いに

申し訳ありませんが信頼でき示すために、両方のボックスに設定する必要があったと私は何を修正するための資格情報を持つものではなかったとして、私はそれらをクリックすると観察するようになりましたボタン。 How to connect to SQL Server using Windows Authenticationの開始の記事は、私たちをかなり遠くに追い込んだ。

+0

WebアプリケーションをIISサーバーに配備し、データベースが同じサーバーにあります。私はそのサーバー上の別のユーザーIDでアプリケーションにアクセスしたいです。 –

0

ほとんどの場合、信頼できる接続文字列を使用している可能性があります。

データソース= myServerAddress;初期 カタログ= MYDATABASE;統合 セキュリティ= SSPI;

... Windows認証を使用しています。標準の接続文字列を使用する必要があります。例えば

SQL Server 2008の:

データソース= myServerAddress;初期 カタログ= MYDATABASE;ユーザー ID = MYUSERNAME;パスワード= mypasswordという。

SQL Server内にWindows以外の認証ユーザーを設定するようにしてください。

+0

これは、OPがセキュリティを弱めて動作させる場合にうまく機能します。 –

+0

@Gregory Windows認証/ sql /権限を持つアカウントでこのサイトを実行している場合を除き、彼がこれを展開しているサーバーであれば、それを変更する方法は他にありません。より安全なものは問題ではありませんが、何が効くのでしょうか。私は彼が完全な答えを得るためにもう少し情報を与える必要があることを納得させる。 :) –

+0

「詳細情報」と完全に同意してください。警告だけがマークアップされたようにコーパスに追加すると考えたのは賢明だった。 –

0

認証モードはweb.configで設定する必要があります。また、匿名認証が無効かどうかを確認してください。

<authentication mode="Windows"/> 
1

これは、あなたの開発者のボックスに、あなたという事実を扱う(またはアノンユーザー?またはユーザーがdevelper Webサービスのようにスピンアップ?)SQLのローカルインスタンスに信頼されています。ただし、展開すると、ASP.NET実行時のユーザーは信頼されません。 (これをジョージが述べたように

オプション

  • 、SQLログオンで行く、ない窓は
  • は、データコンテキストのユーザーを偽装WebサーバーとSQL Serverの
  • の間に適切な信頼を設定します複雑になる、btw)
関連する問題