私たちが作成するすべてのストアド プロシージャには、clientip、serverip、Windows ユーザー名などを渡す必要があります。
問題は、これらを効率的に DAL に渡す方法です。
私たちが作成するすべてのストアド プロシージャには、clientip、serverip、Windows ユーザー名などを渡す必要があります。
問題は、これらを効率的に DAL に渡す方法です。
これは ASP.NET の Web アプリであると想定しています。その場合、次の静的インスタンスを介して、Web アプリケーションの外部の Web 要求のコンテキストでこれらすべてのものにアクセスできます。
System.Web.HttpContext.Current
必要なものがすべて、ページ レベルでデフォルトで使用可能な Request、Response、および User オブジェクトに通常ある標準的なものである場合は、これで十分です。Web アプリに固有の情報が必要な場合は、Ben の回答 (上記) が機能するはずです。
System.Environment クラスまたは独自のスレッド プリンシパルで、上記のすべてのデータにアクセスできるようにする必要があります。DAL は、これらのソースの両方またはいずれかから簡単に取り込むことができます。
このデータを保持するためのクラス、構築するためのファクトリ、およびそれを使用するためのヘルパー メソッドを作成します。
IUserContext
{
int param1 {get;set;}
int param2 {get;set;}
SqlParameter[] GetSqlParameters();
}
UserContext : IUserContext{}
UserContextFactory
{
internal IUserContext IUserContextFromRequest(){}
}
幸運を