簡體   English   中英

如何在登錄時將使用重定向到特定頁面給用戶?

[英]How to redirect use to specific page to user on login?

場景:-假設用戶打開了鏈接

www.domainname.com/albums/

但是要查看此頁面,他應該通過身份驗證過程。 現在,以防無法使用身份驗證cookie或會話超時,我將他重定向到登錄頁面。

但是,一旦他通過身份驗證,我就需要重定向到該頁面,那么如何捕獲他從哪個頁面登錄到登錄頁面/

我正在使用ASP.Net MVC。

請參閱此MSDN文章來解決您的問題: FormsAuthentication.RedirectFromLoginPage方法 還請參見此鏈接

在ASP.NET MVC項目中,當您使用[Authorize]裝飾類或方法並且授權失敗時,站點將自動重定向到登錄頁面(使用web.config中指定的loginUrl)。 此外,ASP.NET MVC框架中的某些內容將原始請求的URL作為ReturnUrl參數傳遞。

您將在控制器中執行登錄POST操作,類似於以下代碼:

控制器

    [HttpPost]
    [AllowAnonymous]
    public ActionResult LogOn(LogOnModel model, string returnUrl)
    {
        if (User.GetUserInfo() != null)
        {
            return Redirect(Url.Home());
        }

        if (ModelState.IsValid)
        {
            FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);

            if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
                && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
            {
                return Redirect(returnUrl);
            }
            else
            {
                return Redirect(Url.Home());
            }
        }

        // If we got this far, something failed, redisplay form
        return View(model);
    }
public void Login_OnClick(object sender, EventArgs args)

{

if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);

else

      Msg.Text = "Login failed. Please check your user name and password and try again.";

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM