8

別のサーバー上の SQL Server 2008 データベースに接続しようとしている従来の ASP アプリがあります。ASP アプリは、Windows Server 2008 上の IIS7 から提供されています。

Web サイトのアプリケーション プールを、リモート サーバー上のデータベースにアクセスできることを確認した特定の Windows アカウントで実行するように変更しました。

ただし、ブラウザでアプリを実行すると、次のエラーが発生します。

アプリケーションエラー
番号: -2147217843 (0x80040E4D)
出典: Microsoft OLE DB Provider for SQL Server
説明: ユーザー 'NT AUTHORITY\ANONYMOUS LOGON' のログインに失敗しました。

NT AUTHORITY\ANONYMOUS LOGON を使用して接続しようとするのはなぜですか? アプリ プール ID は従来の ASP コードには適用されませんか? これを特定のユーザーとして接続するにはどうすればよいですか?

編集

私が使用している接続文字列は次のとおりです。

プロバイダー=SQLOLEDB.1;データ ソース=myDbServer;初期カタログ=myDatabase;統合セキュリティ=SSPI

4

3 に答える 3

24

サイトでクラシック ASP のアプリケーション プール ID を使用するには、匿名認証に使用される資格情報を変更する必要があります。デフォルトでは、サイトは特定のユーザー、つまり IUSR を使用するように設定されています。

サイトの IIS 領域から[認証]を選択し、[匿名認証]を選択してから [編集] を選択します。特定のユーザーからアプリケーション プール IDに変更します。

SQL 認証ではなく Windows 認証 (統合セキュリティ) を使用することをお勧めします。構成ファイルに資格情報が含まれていないため、これらのファイルが侵害された場合に資格情報の制御が失われることはありません。

于 2010-10-12T10:48:53.037 に答える
0

アプリは発信者になりすますのですか?制約付き委任を有効にする必要があります:委任用のサーバーの構成

于 2009-07-16T19:47:21.293 に答える
-1

接続文字列www.connectionstrings.comのユーザー名とパスワードを指定するか、IIS アプリケーションを特定のユーザーとして実行するように設定する必要がありますが、そうすると IIS の多くのセキュリティ設定が不要になります。

Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;Uid=myUsername; Pwd=myPassword;

ここを見てください:aspfaq

最後に、IIS サイトで匿名アクセスが無効になっていることを確認して、匿名トークンを渡す代わりに、選択したユーザーを実際に偽装します。

于 2009-07-16T19:38:45.943 に答える