私のアプリケーションはAsp.Net MVC3にあります。私は2人のユーザー(Adminと一般).Imはログインユーザーのクッキーを維持しています。ログアウト後にユーザーがナビゲートできないようにします。
以下は私のクッキーコードです。以下は
public static void setCookiestring Password ,string UserName)
{
HttpCookie MyCookie= new HttpCookie("MyCookies");
MyCookie["Password"] = Password;
MyCookie["UserName"] = UserName;
MyCookie.Expires.Add(new TimeSpan(0,30,0));
HttpContext.Current.Response.Cookies.Add(MyCookies);
}
私のクッキーは、ユーザーが
public static bool logout()
{
HttpCookie MyCookie= new HttpCookie("MyCookies");
MyCookie.Expires = DateTime.UtcNow.AddDays(-1);
HttpContext.Current.Response.Cookies.Add(MyCookies);
return true;
}
をログアウトするとき、私はすべての指数(上のクッキーをチェックしようとした有効期限かのコードです)Controller.Ifのクッキーが存在します必要なページに移動し、それ以外の場合はホームに移動します。ユーザーがログアウトクリックすると
if (!Cookie.CheckCookie())
{
//use the current url for the redirect
filterContext.HttpContext.Response.Redirect("~/Home/Index", true);
}
それらがホームにリダイレクトされますが、ボタンをクリックした後に戻る、最後に訪問したページを表示することができています。 ユーザーがLogOutをクリックしたときに戻るボタンをクリックした場合でも、「訪問先にリダイレクトされ、最後に訪問したページではありません」というメッセージが表示されます。 ご提案ください
@SamMKhanだから、IndexアクションがNoCache属性で装飾されていても、あなたはまだ 'Back'ボタンを使って戻ることができると言っていますか?これは私がそれをテストしたときではありませんでした。 –
は私のNoCache命令コード 'パブリッククラスNoCache命令を見てみます:ActionFilterAttribute { 公共オーバーライドボイドOnResultExecuting(ResultExecutingContext filterContext) { VAR応答= filterContext.HttpContext.Responseを。 response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); response.Cache.SetValidUntilExpires(false); response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);応答.Cache.SetCacheability(HttpCacheability.NoCache); ; response.Cache.SetNoStore();ここ }} ' –
は私のホームコントローラー ' [NoCache命令] 公共のActionResultインデックス(){ リターンビュー()です。 } ' どこでも間違っていますか、それ以上の変更は必要ですか? –