asp .net 4.0 でアプリケーションを開発しています。
ここで、アプリケーションにログインしているときに、内部ページに移動し、「ロールの管理」と言ってリンクをコピーし、[ログアウト] ボタンをクリックすると、ログイン ページが表示されます。そのリンクを別のタブに貼り付けて、ログインページが表示されることを期待していますが、表示されず、役割の管理ページが表示されます。
解決策を教えてください。この場合、ログインページを表示するにはどうすればよいですか?
ページの「ロールの管理」で、ページの読み込みで、セッションでユーザー情報が利用可能かどうかを確認します。ログアウトボタンをクリックすると、まずセッションからユーザー情報を削除してから、ログインページにリダイレクトします。
セッション変数を使用して、ユーザーがログインしているかどうかを確認し、各ページで..ページロードイベントで、そのセッションユーザー変数がnullであるかどうかを確認する必要があります.nullの場合、ログインページにリダイレクトされます
C# を使用している場合は、ASP.Net で利用可能な Session Destroy 関数を使用してみてください。
試す:
Session.Abandon();
特定の項目をセッションから削除したい場合 (MSDN):
Session.Remove("YourItem");
編集:値をクリアしたいだけの場合は、次のことができます:
Session["YourItem"] = null;
すべてのキーをクリアしたい場合は、次のようにします。
Session.Clear();
次に、セッションアクセスのみで制限するすべてのページでセッション値を確認します(ログインユーザーの場合)。
まず、ログアウト ボタンのクリック イベントですべてのセッションを削除
Session.Abandon();
Session["SessionName"] = null;
Session.Clear();
次に、Global.asax ファイルにコードを記述します
Void Application_Error(object sender,EventArgs e)
{
Response.Redirect("LogIn.aspx");
or
Server.Transfer("LogIn.aspx");
}