首页 新闻 会员 周边 捐助

asp.net如何让未登录用户登录后能自动跳转到登录前访问的页面

0
[待解决问题]

比如购物车页面进入去结算页面  如果未登录就跳转到登录页面。登录成功后就直接跳转到 结算页面。而不是跳转到个人中心页面。
有一种做法是在购物车页面或者在结算页面判断是否登录 如果未登录 就将当前url 作为参数传递到登录页面。然后登录页面登录后在判断这个参数是否为空。如果不为空则跳转到这个地址。。虽然这个方法可以实现 。。但是如果  是 其他页面也是需要登录的 那么 又得在那里的页面进行传递参数。 请问各位高手有没有更好的方法

yzy的主页 yzy | 菜鸟二级 | 园豆:317
提问于:2012-05-05 18:12
< >
分享
所有回答(4)
1

跳转前把当前页面地址带上,so easy.

登陆页面加一个小小的参数backUrl即可.

或者直接用referenceurl

go on coding | 园豆:343 (菜鸟二级) | 2012-05-05 18:49
1

用这一种方法试试: Request.UrlReferrer.ToString();

方法一:
 在asp.net的aspx里面的源代码中
<input type="button onclick="javascript:window.history.go(-1);"value="返回上一页">

浅析:这个是用了HTML控件,通过一个onclick的事件,调用了javascript中的一个方法就可以了。这个是最简单的了,也同样适用于静态页面,ASP页面等。

方法二:

利用Reponse.write
如果你对ASP有一定的了解,那么对Response.write这个东东就不会陌生了,方法一是直接有HTML页面中实现,则这个则是在后台环境中实现(这个说法好像不是很规范,呵呵)

Response.write("<script language=javascript>history.go(-2);</script>)

<a   href="#"   onclick="javascript:history.back();">返回前一页</a>


这里为会么要采用-2的值呢,我个人认为是这样的:因为在asp.net中的页面,当你按下一个button后,由于页面中会实现page.postback的缘故,实际上在这其中是刷新了两次页面,我们要的是第一次的,所以就......


方法三

利用Response.Redirect() 或 server.transfer()


在page_load中加入
if(!IsPostBack)   
        ViewState["retu"]=Request.UrlReferrer.ToString();   
    
而在在返回按钮事件中   
  Response.Redirect(ViewState["retu"].ToString());   
  或Server.Transfer   (ViewState["retu"].ToString());   


浅析:
Request.UrlReferrer可以获取客户端上次请求的url的有关信息,我们在使用这个的时候最好对其进行一个判断

if(ViewState["UrlReferrer"]!=null)

        Response.Redirect(ViewState["UrlReferrer"].ToString();

else
{
Response.write("对不起,当前是最前页码“);


这样才好使一点点喔
}

以下这段来自:http://stswordman.cnblogs.com/archive/2006/06/12/423910.html
在使用Request.UrlReferrer时还要注意: 
1.  如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值
2.  如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则    Request.UrlReferrer返回空。因为 在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息   
3.  点击刷新按钮不会改变Request.UrlReferrer 



方法四:

这个方法估计很少人用,不过我试了一下,也还很不错喔

在button的onClick事件中输入

this.RegisterClientScriptBlock("e", "<script language=javascript>history.go(-2);</script>");

一样可以 返回到上一页


方法五

<a href=<%=request.servervariable("http_Referre)%>

<asp:image  visible = true" imagurl="上一页" runat="server"/></a>


这里还要啰嗦一下用Javascript来实现与用Response.redirect()来实现的一点点区别,如果你是用天表单的时候想保留你填的数据,那就要用history.go();这个东东,如果你只是直接返回不用做任何操作,你就可以用reponse.redirect()了.

悟行 | 园豆:12559 (专家六级) | 2012-05-05 20:27
0

如果你用MVC的话,自带这个功能

jackchain | 园豆:95 (初学一级) | 2012-05-07 09:08

弱弱的问一下 MVC 怎么实现的

支持(0) 反对(0) 花儿笑弯了腰 | 园豆:264 (菜鸟二级) | 2013-10-09 11:08
0

不是有session吗?判断下就好了,若果登陆则继续,如果没有登陆就跳转

LastPc | 园豆:225 (菜鸟二级) | 2013-03-19 09:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册