ThreadContext.Properties を使用してユーザーごとのセッションを設定する方法を見つけようとしています。
ユーザーが Web サイトにログインすると、ユーザー ID がセッションに保存されます。この値は、ログインが成功した後に ThreadContext.Properties["UserID"] に追加したいと考えています。
adonetappender を使用してログ エントリを db に保存しており、%property{userid} を使用して値を取得しています。ただし、この値が null と読み取られる場合があります。
だから基本的に私が欲しいのは:
1) を作成する
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
ログに記録したいページで。
2) ログインが成功したら、ThreadContext.Properties["UserID"] に値を格納する必要があります。この値は、ユーザー セッション全体で常に存在し、ログに記録したページと、global_asax の Application_Error(...) の両方から利用できます。 . とにかく、この ThreadContext の寿命はどれくらいですか? 私が知る限り、GlobalContext は実際には使用できません。
3) すべてのログ ステートメントで値を再割り当てしたくありません。
私がどこに向かっているのか、あなたが理解してくれることを願っています。
//ダニエル