Global.asax クラスを使用することをお勧めします。まだ存在しない場合は、Web アプリに追加する必要があります。取得したら、さまざまなイベント (セッションの開始と終了、アプリの開始と終了、エラー) を使用して、まさに必要なものに固有のビジネス ロジックを実装できます。
私は、global.asax の Application_PreRequestHandlerExecute イベントで、ログインしているユーザーを操作する傾向があります。これにより、User Principle (例: User.Identity.Name) を見て、誰がログインしているか (またはログインしていないか) を確認し、必要なこと (ユーザーのセッション情報を設定するなど) を行うことができます。など)。
これは、ユーザー データをセッションに格納するために Global.asax を使用する .NET Web アプリのコードの一部です。
protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e) {
if (Context.Handler is IRequiresSessionState || Context.Handler is IReadOnlySessionState) {
SetUserItem();
}
}
private void SetUserItem() {
if (Session["UserItem"] == null)
Server.Execute("~/SetSessionUserObj.aspx", true);
}
...そして SetSessionUserObj.aspx.cs
protected void Page_Load(object sender, EventArgs e) {
string ID = User.Identity.Name;
MyUser myUser = new MyUser();
UserItem userItem = myUser.GetUserItemByID(ID);
if (userItem != null) {
Session["UserItem"] = userItem;
}
}
これは、global.asax でユーザーの ID にアクセスする方法の 1 つにすぎません。必ずしも Server.Execute を実行してユーザー データを設定する必要はありません (この質問の範囲外の他の理由で実行しただけです)。
幸運を。