0

私はこれらのアクションを備えたホームコントローラーを持っています:

public class HomeController : Controller
{
    [Authorize]
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Logoff()
    {
        HttpContext.Session.Remove("LogonTicket");
        HttpContext.Session.Remove("PID");
        return View("Index");
    }

ここで、ログオフアクションを使用してログオフするときに、インデックスの承認属性を有効にしたいのですが、ログオフアクションでインデックスビューを返すときに有効になりません。

これをどのように処理しますか?

カスタムMembershipProviderを使用していますが、ログオフ機能を組み込む方法がわかりません。

4

2 に答える 2

1

ビューを直接返すのではなく、リダイレクトする必要があります。

public ActionResult Logoff()
{
    HttpContext.Session.Remove("LogonTicket");
    HttpContext.Session.Remove("PID");
    return RedirectToAction("Index");
}

ビューを返すと、ビューのマークアップがすぐにクライアントに直接送信され、Authorizeフィルターはまったく呼び出されません。

于 2012-08-17T20:50:01.953 に答える
0

AccountControllerログオフアクションで実行されます。それらは現在、ベースコントローラーのパブリック「グローバル」でもあります。

    public ActionResult LogOff()
    {
        FormsAuthentication.SignOut();
        LogonTicket = null;
        ParticipantID = null;
        return RedirectToAction("Index", "Home");
    }
于 2012-08-21T15:49:01.210 に答える