1

イベントリスナーを使用NHibernateしてデータベースにイベントログを生成しHttpContext.CurrentUser、現在のユーザーIDを取得してデータベースフィールドに書き込むために使用しています。

SessionFactory インスタンスはシングルトンであり、ドキュメントによるとイベントリスナーも同様です。そのため、現在のユーザーが既に変更されている場合、イベントリスナーが HttpContext.CurrentUser を呼び出す可能性があるかどうか疑問に思っています。つまり、イベントには何も記録されていないユーザーが記録されます。変更を行いますか?

変更が別のスレッドから生成された場合、イベント処理の時点で HttpContext が null ではなく、再び間違ったユーザーがイベント テーブルに書き込まれる可能性はありますか?

4

2 に答える 2

2

Httpcontext はスレッド セーフであるため、そのインスタンスの http コンテキストが予期せず変更されることはありません。特定のユーザーに正しいデータを返すには、スレッド コンテキストに依存します。

于 2013-11-08T13:00:17.330 に答える