2011-02-11 43 views
0

ASP.NET web.configとIIS Webサイトを設定して、必要な設定を取得できません。ここで私は一日の終わりにしたいものです。ASP.NET、IISセキュリティ設定Windows認証とSQL Serverアクセス​​

  • アプリケーションがNT IDがSQL Serverに接続するために使用
  • 特定のNT IDを使用してSQL Serverに接続すると、web.configファイルではありません。または少なくともそのパスワードはそうではありません。
  • HttpContext.Current.User.Identity.Name(またはその他の手段)を使用して、アプリケーションに接続している実際のユーザーのNT IDを取得できます。

Visual Studio 2008でASP.NET 3.5をセットアップすると、基本的にはすべてローカルで動作しています。しかし、IISにデプロイすると、最初の2つの箇条書きを正常に取得できますが、3番目の行頭は取得できません。 Identity.Nameがnullです。私が今すぐ導入した方法は、web.configで偽装がtrueに設定されており、匿名ユーザーがSQL Serverに接続したいNT IDに設定された匿名ユーザーが有効になっています。

私はSQL Serverに接続するために使用している接続文字列は次のようになります。

Server=[My Server];Database=[My DB];Trusted_Connection=Yes; 

私は他の記事で示唆されたために許可を設定しようとしたが、それはちょうど、Internet Explorerがログインをポップアップしますボックス。

これはIIS 6.0を実行しているWindows Server 2003のボックスです。

これは、愚かな質問、および/または重複する質問である可能性があります。しかし、私は多くの検索と試行錯誤を重ねてきました。私は魔法の設定を得ることができません。

+0

アプリケーションのユーザーがデータベースに接続するユーザーIDになりたがっているようですか? –

答えて

0

デフォルトでは、使用しているIISのバージョンに応じてmachine \ ASPNETアカウントまたはNETWORK_SERVICEアカウントが使用されます(IIS 7がNETWORK_SERVICEを使用しているかどうかはわかりませんが、6があります)。別のアカウントが必要な場合は、アカウントを実行するために構成ファイル(ユーザー名とパスワードの両方)に偽装が適用されます。これで、aspnet_regiisユーティリティを使用してconfigセクションのこの部分を暗号化できます。しかし、あなたはアカウントを提供する必要があります。私が知っていることがなくても、あなたはIISから取り除くことができない限り、あなたは離れていくことはできません。

HTH。

0

これはDouble-Hop Problemと呼ばれ、ユーザーの資格情報を第三者に転送することを禁じています。これは、あるマシンから別のサイト(第1ホップ)上のサイトからブラウズし、第3マシン(第2ホップ)に資格情報を転送するときに発生します。

IISとSQL Serverを同じマシンにホストすると、この問題は発生しません。

How to use the System.DirectoryServices namespace in ASP.NETに掲載されている多くの技術的な詳細は、ダブルホップの問題とプライマリトークンとセカンダリトークンについて説明しています。

関連する問題