use*_*827 4 asp.net redirect login
我使用Asp.Net Web Forms创建了一个Admin网站.
当我与我的朋友分享我的网站页面(不是主页)的网址时,当他在浏览器中输入时,它会自动将他重定向到登录页面.(这是正确的行为).当他输入用户名和密码时,它会重定向到主页,而不是我与他分享的网址.
我尝试Request.UrlReferrer.PathAndQuery在login.aspx上使用.
仅当用户有意退出系统时,它才有效.
基本上,我想通过邮件或其他东西分享链接(url),用户将打开它,如果他还没有登录,他会要求登录,一旦登录浏览器将显示他从网址的页面,而不是主页.
Kri*_*ppa 11
在每个页面中检查用户是否登录,如果没有则登录
if (Session["UserName"] == null && Session["UserId"] == null)
{
string OriginalUrl = HttpContext.Current.Request.RawUrl;
string LoginPageUrl = "/login";
HttpContext.Current.Response.Redirect(String.Format("{0}?ReturnUrl={1}", LoginPageUrl, OriginalUrl));
}
Run Code Online (Sandbox Code Playgroud)
并在登录页面检查是否returnurl存在,如果returnurl存在重定向到该页面.
if (this.Request.QueryString["ReturnUrl"] != null)
{
this.Response.Redirect(Request.QueryString["ReturnUrl"].ToString());
}
else
{
this.Response.Redirect("/account/default");
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的是表单身份验证,则可以ReturnUrl在登录页面中使用查询字符串:
var returnUrl = Request.QueryString["ReturnURL"];
if (string.IsNullOrEmpty(returnUrl)){
returnUrl = "~/";
}
Response.Redirect(returnUrl);
Run Code Online (Sandbox Code Playgroud)
如果您不使用它,您应该按原样行事:当您将用户重定向到登录页面时,请使用referrer页面添加查询字符串.
//**Remember to url encode it!**
var returnUrl = Server.UrlEncode(Request.Url.PathAndQuery);
Response.Redirect("~/login.aspx?ReturnURL=" + returnUrl);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19453 次 |
| 最近记录: |