このパターンは非常に一般的であり、主な制御と理解のポイントは IIS とセキュリティです。このトピックについて自信を持つには、MSDN IIS サイトを参照する価値があります。
http://msdn.microsoft.com/en-us/library/aa292471%28v=vs.71%29.aspx
1) SQL サーバー DB がどこにあるかは問題ではありません。SQL サーバー インスタンスが存在する場合、役割を果たします。同じ domain/AD にある場合、Windows 統合セキュリティを使用して DB にログインするとうまくいきます。2) SQL に接続するユーザー ID が DB インスタンスの有効なユーザーであり、基礎となる DB に必要な権限を持っている場合、データにアクセスできます。
3) このコードは何ですか?
回答/検討が必要な質問が多数あります。
a) IIS で FORMS ログオンまたは Windows 統合ログオンを使用していますか。b) サービス ユーザーを使用して DB にアクセスしますか、それとも各ユーザーに DB に割り当てますか。c)アプリケーションのセキュリティモデルは何ですか。
http://leastprivilege.com/category/net-security/ Dominick Baier セキュリティ ブログも参照してください。
サンプルソリューションとして、(唯一のものではありません)。
- Forms認証を使用するようにIISでWebサイトを設定できます
- IIS で Web サイトが使用するアプリケーション プールを設定して、特定のサービス ユーザーを使用します。ユーザー ID とパスワードを IIS アプリケーション プールに入力します。最初にドメインでこのユーザーを作成する必要があります。できるだけ少ない権利を割り当てます。
- このサービス ユーザーを SQL サーバーに追加し、DB でアクセスする必要がある十分な権限を付与します。(2 ステップ) したがって、サービス ユーザーは DB にアクセスできますが、それ以外のことはほとんどできません。
したがって、これにより 、Web サイトの背後にあるアプリ プールに設定したシステム ユーザーとしてSystem.Environment.UserNameが残ります。アプリケーションのセキュリティは、必要に応じて管理されます。.net 4.5 に到達したら、プリンシパルを主張するのは「新しい方法」です。
ただし、ここでは必要に応じてシンプルに保ちます。
Thread.CurrentPrincipal.Identity.Name には、フォーム ベースのユーザーの名前が含まれます。
幸運を...