1

さて、誰かがログアウトすると、ログアウトアクションの URL に渡されます。しかし、問題は、彼が終了を押した場所で、コントローラーのURLのアクションを起動できないことです。

たとえば、ユーザーはページにいました

site.com/cabinet/home/index

そしてここで次のようなURLを押しました:

site.com/Account/LogOut/?returnURL=/cabinet/home/index

public ActionResult LogOut(string returnURL)
{
    // Need to RedirectToAction(...)
    return Redirect(returnURL);
}

したがって、彼をreturnURLにリダイレクトすると、コントローラーでは何も起こりません(コントローラーでも、未承認のユーザー用に再描画されるビューでも(認証と認証ユーザーではなく、同じインターフェイスではありません))。

それで、コントローラー、アクション、エリア(?)、パラメーターを抽出し、この後にのみ RedirectToAction を作成する必要がありますか?または、URLしか知らないときにコントローラーを起動させる他の方法はありますか?

どうも。

4

2 に答える 2

0

あなたのビューで:

@using (Html.BeginForm("LogOut", "Account", 
    new { returnUrl = HttpContext.Current.Request.Url.LocalPath },
    FormMethod.Post))
{
<input type="submit" name="logout" value="Выход" />
}

活動中:

    public ActionResult LogOut(string returnUrl)
    {
        FormsAuthentication.SignOut();
        if (Url.IsLocalUrl(returnUrl))
        {
          //  return RedirectToAction("LogIn", "Account", new { returnUrl = returnUrl });
            return Redirect(returnUrl);
        }
        else
        {

            return Redirect(FormsAuthentication.LoginUrl);
        }
    }
于 2013-07-18T11:03:23.440 に答える
-2
    return RedirectToAction(ActionName, ControllerName)
于 2012-09-19T13:36:23.960 に答える