[英]How to redirect use to specific page to user on login?
場景:-假設用戶打開了鏈接
但是要查看此頁面,他應該通過身份驗證過程。 現在,以防無法使用身份驗證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.