C# 如何在用户登录时将使用重定向到特定页面?
情景:- 假设用户打开链接www.domainname.com/albums/ 但要查看此页面,他应该通过身份验证过程。现在,若身份验证cookie不可用或会话超时,我将他重定向到登录页面 但一旦他验证了自己的身份,我需要重定向到那个页面,那个么如何捕获他从哪个页面登陆到登录页面呢/C# 如何在用户登录时将使用重定向到特定页面?,c#,asp.net,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc 4,情景:- 假设用户打开链接www.domainname.com/albums/ 但要查看此页面,他应该通过身份验证过程。现在,若身份验证cookie不可用或会话超时,我将他重定向到登录页面 但一旦他验证了自己的身份,我需要重定向到那个页面,那个么如何捕获他从哪个页面登陆到登录页面呢/ 我正在使用ASP.Net MVC。请参阅此MSDN文章以解决您的问题:。另见: 在ASP.NET MVC项目中,当您使用[Authorize]修饰类或方法而授权失败时,站点会自动重定向到登录页面(使用web.con
我正在使用ASP.Net MVC。请参阅此
MSDN
文章以解决您的问题:。另见:
在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);
}
我还有一件事要和你核实..请参阅使用
进行身份验证。SetAuthCookie
,我正在设置cookie,但现在用户登录,但他没有单击注销链接,而是简单地关闭浏览器,现在在这样的cookie中,cookie不会被销毁,但会话在他再次出现时会过期,会话变量为空,但由于Cookie,他可以登录。。仅供参考,我正在使用非持久性cookie。我应该如何处理这个问题请将您的评论作为新问题发布,并在这里描述所有细节。此外,在调试后(当您停止调试模式或重新启动IIS会话时),您是否在托管网站或VS中遇到此问题?
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.";
}