关于用户碰到需要登录才能看到的网页,当登录进去之后的一段代码。我想问的是:Request.QueryString["ReturnUrl"].ToString();这个代码QueryString["ReturnUrl"],什么时候加进去的啊?是系统自动添加的吗?只要没登录进去,转到login.aspx之后系统自动添加?
if (Page.IsValid)
{
UserInfo user = new UserInfo();
user = UserDB.PLogin(Security.Encrypt3DES(txtEmail.Text.Trim()), Security.Encrypt(txtPassword.Text.Trim()));
if (user != null)
{
//string strRedirectURL = FormsAuthentication.GetRedirectUrl(txtEmail.Text.Trim(), false);
//HttpCookie myCookie = FormsAuthentication.GetAuthCookie(txtEmail.Text.Trim(), false); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, this.txtEmail.Text.Trim(), DateTime.Now, DateTime.Now.AddMinutes(30), true, user.RoleID, FormsAuthentication.FormsCookiePath);
string hash = FormsAuthentication.Encrypt(ticket); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (ticket.IsPersistent)
{
cookie.Expires = ticket.Expiration;
}
Response.Cookies.Add(cookie);
string returnUrl = Request.QueryString["ReturnUrl"].ToString();
if (returnUrl == null)
{
returnUrl="phome.aspx";
}
Response.Redirect(returnUrl);
//FormsAuthentication.SetAuthCookie(txtEmail.Text.Trim(),false);
//FormsAuthentication.RedirectFromLoginPage(txtEmail.Text.Trim(), false);
}
else
{
lblLoginFailed.Text = "用户名或密码错误,请重新输入";
}
}
if (Page.IsValid)
{
UserInfo user = new UserInfo();
user = UserDB.PLogin(Security.Encrypt3DES(txtEmail.Text.Trim()), Security.Encrypt(txtPassword.Text.Trim()));
if (user != null)
{
//string strRedirectURL = FormsAuthentication.GetRedirectUrl(txtEmail.Text.Trim(), false);
//HttpCookie myCookie = FormsAuthentication.GetAuthCookie(txtEmail.Text.Trim(), false); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, this.txtEmail.Text.Trim(), DateTime.Now, DateTime.Now.AddMinutes(30), true, user.RoleID, FormsAuthentication.FormsCookiePath);
string hash = FormsAuthentication.Encrypt(ticket); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (ticket.IsPersistent)
{
cookie.Expires = ticket.Expiration;
}
Response.Cookies.Add(cookie);
string returnUrl = Request.QueryString["ReturnUrl"].ToString();
if (returnUrl == null)
{
returnUrl="phome.aspx";
}
Response.Redirect(returnUrl);
//FormsAuthentication.SetAuthCookie(txtEmail.Text.Trim(),false);
//FormsAuthentication.RedirectFromLoginPage(txtEmail.Text.Trim(), false);
}
else
{
lblLoginFailed.Text = "用户名或密码错误,请重新输入";
}
}
解决方案 »
- 求页面获取弹出页面的某个文本的值的JS
- 大家帮忙看看问题出在什么地方,为什么数据没有更新到数据库 ;谢了先~
- 登入账号的漏洞:or '1'='1’--问题怎么解决啊?
- GIS的“轨迹回放”是如何实现的?
- 为什么我网站上的session,cookie总莫名奇妙的丢失???????
- 关于在ASP.NET中使用正则表达式时遇到的难解之迷,敬请高手指点迷津
- 文件上传问题,我用下面函数上传大文件会出错(显示 “找不到服务器,无法显示本页”),兄弟们救命啊。
- 用ASP.NET实现的网页的刷新问题
- 请问各位高手,需要远程连接SQLserver2008是直接连接速度快还是采用Webservice方式连接效率高?
- 很容易的问题。。
- Web服务
- 【求助】怎样获取有翻页控件页面的列表内容
是需要自己增加的.
应该在那个验证页上加
即在需要验证的页上发现未登陆时,
首页取得当前地址,将地址以GET方式传给登陆页,
即login.aspx?ReturnUrl=你获取的地址
然后从定向到login.aspx?ReturnUrl=你获取的地址
在login.aspx验证成功后,在取出ReturnUrl后的地址
即你所写的Request.QueryString["ReturnUrl"]
在重定向到Request.QueryString["ReturnUrl"]即可
是需要自己增加的.
应该在那个验证页上加
即在需要验证的页上发现未登陆时,
首先(刚才打成首页了)取得当前地址,将地址以GET方式传给登陆页,
即login.aspx?ReturnUrl=你获取的地址
然后从定向到login.aspx?ReturnUrl=你获取的地址
在login.aspx验证成功后,在取出ReturnUrl后的地址
即你所写的Request.QueryString["ReturnUrl"]
在重定向到Request.QueryString["ReturnUrl"]即可
你要做的是在去login.aspx之前先获取当前的网址,
然后string returnUrl="login.aspx?returnUrl=获取的网址";
然后重定向到returnUrl上,可以使用Response.Redirect(returnUrl)
在到达login.aspx之后并且用户成功验证后,
用Request.QueryString["ReturnUrl"]取出returnUrl,
然后在重定向回去即可例如Response.Redirect(Request.QueryString["ReturnUrl"])
当然了,应该先判断Request.QueryString["ReturnUrl"]!=null的
if(Session["Name"]!=null && Session["Name"].ToString()!="")
{
}
else
{
Response.Redirect("Login.aspx?OldUrl=default.aspx");
}login.aspx
if (!this.Page.IsPostBack)
{
ViewState["OldUrl"] = Request.Params["OldUrl"];
}
//登录按钮
if (ViewState["OldUrl"] != null)
{
string url = ViewState["OldUrl"].ToString();
ViewState["OldUrl"] = null;
Response.Redirect(url);
}
不过这个过程包括了好多过程。我主要是自己想写里面的过程。
我认为,楼主还是去好好学习一下理论在来问问题!
除非你使用Membership或自己实现了Membership类,
FormsAuthentication.GetRedirectUrl()才有效,
否刚你需要自己获取当前的URL
至于是否每个页面都要加,这样看你情况的,
你为什么不处理Global.asax文件!
ReturnUrl就是在超链接起始页面发送的,2是这篇文章的主键发送到了新闻主页newinfo.aspx,它要显示正文,所以需要一个主键来取得单条数据,所以需要这个ID为2的文章数据..所以就Request.QueryString["ReturnUrl"].ToString();QueryString在链接内能看到,纯粹是为了页面展示的时候传值用的.