0

IIS Web サーバーでホストされている ASP.NET ページがあります。このページでは、接続文字列を作成して接続を開くだけです。DB ストアド プロシージャはさまざまなタスク (典型的なクライアント サーバー アーキテクチャ) に current_user を使用しているため、DB 接続のクライアント ID を渡したいと考えています。

開発環境: 開発マシンのビジュアル スタジオからこのページを実行すると、すべて正常に動作し、Windows ID で DB 接続が開かれます。また、ストアド プロシージャの current_user の値も自分です。接続文字列で、自分自身が認証されていることがわかります。

問題: 展開サーバーで、サーバー マシン アカウントに対して上記の認証が行われるため、ログインに失敗します。SPの current_user の値が常にページを開いたユーザーになるように、クライアントの資格情報を使用して接続を確立したいと考えています。

ご不明な点がございましたら、お気軽にお問い合わせください。前もって感謝します。

4

1 に答える 1

1

web.configで偽装を使用すると、この問題が解決します。

次の行をweb.configファイルに追加します

  <identity impersonate="true">

以下のリンクは、なりすましの詳細と、それがWebアプリケーションに与える影響について説明しています http://msdn.microsoft.com/en-us/library/aa292118(v=vs.71).aspx

Visual Studioでアプリケーションを実行すると、IIS以外のWebサーバーを使用してWebアプリケーションが実行されます。このWebサーバーは、常にログインしたユーザーのIDを使用します。アプリケーションをIISに展開すると、偽装がfalseに設定されている場合、アプリケーションプールIDがSQLServerアクセス​​に使用されます。偽装のデフォルト値はfalseです。

于 2012-05-13T05:41:18.520 に答える