4

こんにちは私はMVC3に比較的慣れておらず、アプリケーションのログアウトに取り組んでいます。別のタブでWebサイトを開いても、ログインしたままでログインを行うことができました。

私のすべての見解(もちろん、家を除く)にはこれがあります:

<a href = "@Url.Action("Index", "Home")">Logout</a>

そして私のコントローラーにはこれがあります:

public ViewResult Logout() { Session.Abandon(); return View("Index", "Home"); }

アプリはログアウトせず、代わりに現在のビューを返します。

何をすべきかを理解するのを手伝ってください。私はActionResultの代わりにViewResultを使用していることに注意してください。このアプリは、MVCの動作を示すために作成しているため、JavaScriptやJQueryも使用しません。

4

2 に答える 2

2

フォーム認証を使用している場合は、認証Cookieをクリアし、ログアウト後にリダイレクトする必要があります。

public ActionResult Logout() 
{ 
    Session.Abandon(); 
    FormsAuthentication.SignOut();
    return RedirectToAction("Index", "Home"); 
}
于 2012-07-28T13:32:51.730 に答える
2

ログアウトアクションを指しているべきではありませんか?

<a href = "@Url.Action("Logout", "Home")">Logout</a>

ログアウトアクションへのパスが\Home\Logout

アップデート:

もう一つの昔ながらの方法は..

ログインに成功すると..

Session["Login"] = true; //or any object that describes the user's identity

すべてのページで確認する必要があります

var login = Session["Login"];
if(Convert.ToBoolean(login)){ //or cast to your expected object
  //do something
}
else{
  //redirect to logout/login page
}

ログアウトすると、

Session["Login"] = null;
于 2012-07-28T11:10:27.133 に答える