查看结果之前 先判断是否已经登录
如果未登录,则跳转到C页面登录,登录成功之后返回到B页面
我现在B页面时在Page_Load事件中判断 并跳转的
但是Request.UrlReferrer方法并认可我这点,它的返回值总是A页面。
之后 : 我测试了两个页面的跳转 testA 和 testB 如果跳转页面是最上级的话 Request.UrlReferrer返回值为NULL
请教下我该如何处理好这个问题?
23 个解决方案
#1
用Response.Redirect("testA.aspx");方法
#2
判断是否登录完之后用这个跳转
Response.Redirect("B.aspx");
Response.Redirect("B.aspx");
#3
直接跳转不就完了啊
Response.Redirect("c.aspx");
Response.Redirect("c.aspx");
#4
难道是因为我没描述清楚?
#5
可以用表单验证啊
在web.config里面配置
如果没有登录,定位到登录页面
FormsAuthentication.RedirectToLogin();
登录成功,定位到所需页面
FormsAuthentication.RedirectFromLogin(txtUserName.Text,true);
在web.config里面配置
如果没有登录,定位到登录页面
FormsAuthentication.RedirectToLogin();
登录成功,定位到所需页面
FormsAuthentication.RedirectFromLogin(txtUserName.Text,true);
#6
如果是要实现aN页面,都要判断登陆,由c到bN定是要加参数判断来源和去处的
#7
这个貌似是一开始就要登陆,不然进行不了任何操作哦
#8
如果未登录,则跳转到C页面登录
----------------------------
这里你应该告知c页面,登录成功后 是否有指定的页要返回
如果有 返回指定页,没有返回默认页
----------------------------
这里你应该告知c页面,登录成功后 是否有指定的页要返回
如果有 返回指定页,没有返回默认页
#9
难道你们都没看到 Request.UrlReferrer 这个方法吗?
算了 我自己想办法吧,可能是我问题没描述清楚
谢谢大家了
算了 我自己想办法吧,可能是我问题没描述清楚
谢谢大家了
#10
Form
A.aspx:
public string id(get{return TextBox1.Text;})//定义公共属性
Server.Transfer("B.aspx");//重定向到目标页面
B.aspx:
//HTML中引入PreviousPageType 指令
virtualPath=A.aspx
<%@PreviousPageType virtualPath=A.aspx %>
//代码中获取From数据
string abcd=PreviousPage.id;
您还可以使用context对象 。于Form的方法类似,这个方法也能保持大量的数据,缺点也一样。但是用的方法比较简单
A.aspx
Context.Items["id"]="1";赋值
Server.Transfer("b.aspx");
B.aspx
string id=Context.Items["Id"].ToString();
Context.Items.Remove();//过河拆桥
ViewState Appllcation Session 静态变量 缓存Cache Cookie QueryString 都可以玩
A.aspx:
public string id(get{return TextBox1.Text;})//定义公共属性
Server.Transfer("B.aspx");//重定向到目标页面
B.aspx:
//HTML中引入PreviousPageType 指令
virtualPath=A.aspx
<%@PreviousPageType virtualPath=A.aspx %>
//代码中获取From数据
string abcd=PreviousPage.id;
您还可以使用context对象 。于Form的方法类似,这个方法也能保持大量的数据,缺点也一样。但是用的方法比较简单
A.aspx
Context.Items["id"]="1";赋值
Server.Transfer("b.aspx");
B.aspx
string id=Context.Items["Id"].ToString();
Context.Items.Remove();//过河拆桥
ViewState Appllcation Session 静态变量 缓存Cache Cookie QueryString 都可以玩
#11
那些登录未登录判断下就可以了
#12
我也是这么想的,不行吗?
还是你脑子转不过弯了。
#13
有分就有动力
#14
A是一个数据提交页面,B是一个结果查看页面,C是登陆页面。
可以在未登陆时提交数据,但是提交后如果查看结果需要已登陆。
我理解的对不?
不解:如果我没有提交数据,登陆后能到B页面么?如果能,B会显示以前提交的结果么?
#15
來看哈····
#16
Page_load(object obj,EventArgs e)
{
if(!IsPostBack)
{
if(Request.UrlReferrer!=null)
{
ViewState["UrlReferrer"]=Request.UrlReferrer.ToString();
}
}
}
使用前需要进行判断:
if (Request != null && Request.UrlReferrer != null && Request.UrlReferrer.PathAndQuery != null)
{
string previousURL = Request.UrlReferrer.PathAndQuery;
}
在使用Request.UrlReferrer时还要注意:
1. 如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值
2. 如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则 Request.UrlReferrer返回空。因
为 在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息
3. 点击刷新按钮不会改变Request.UrlReferrer
#17
跳什么页面直接Response.Redirect("*.aspx");
#18
判断下
if(Request.UrlReferrer!=null)
看看这个:
http://www.cnblogs.com/freeskycd/archive/2010/03/03/1677750.html
#19
这个方案在.net应用Microsoft安全认证时比较有用
#20
用 Session 判断
#21
楼主,你的思路是没有问题的。
但是在表单提交的时候=》查看数据=》这里检查是否登录会刷新一次页面=》
你可以使用cookie保存你上一次的登录。
或者在url上传递上一次打开的url 比如 http://www.www.com?return=asp.net.aspx
csdn上估计也是使用cookie的。登录后返回上一次登录界面。
但是在表单提交的时候=》查看数据=》这里检查是否登录会刷新一次页面=》
你可以使用cookie保存你上一次的登录。
或者在url上传递上一次打开的url 比如 http://www.www.com?return=asp.net.aspx
csdn上估计也是使用cookie的。登录后返回上一次登录界面。
#22
用session保存你登录名
只可检查session是否为空
空 Response.Redirect("c.aspx");
不为空 Response.Redirect("b.aspx");
http://www.csharp360.com/bbs
只可检查session是否为空
空 Response.Redirect("c.aspx");
不为空 Response.Redirect("b.aspx");
http://www.csharp360.com/bbs
#23
哎,可能是没说清楚我的意思,浪费大家时间了 呵呵。。杯具。。
感谢大家
感谢大家
#1
用Response.Redirect("testA.aspx");方法
#2
判断是否登录完之后用这个跳转
Response.Redirect("B.aspx");
Response.Redirect("B.aspx");
#3
直接跳转不就完了啊
Response.Redirect("c.aspx");
Response.Redirect("c.aspx");
#4
难道是因为我没描述清楚?
#5
可以用表单验证啊
在web.config里面配置
如果没有登录,定位到登录页面
FormsAuthentication.RedirectToLogin();
登录成功,定位到所需页面
FormsAuthentication.RedirectFromLogin(txtUserName.Text,true);
在web.config里面配置
如果没有登录,定位到登录页面
FormsAuthentication.RedirectToLogin();
登录成功,定位到所需页面
FormsAuthentication.RedirectFromLogin(txtUserName.Text,true);
#6
如果是要实现aN页面,都要判断登陆,由c到bN定是要加参数判断来源和去处的
#7
这个貌似是一开始就要登陆,不然进行不了任何操作哦
#8
如果未登录,则跳转到C页面登录
----------------------------
这里你应该告知c页面,登录成功后 是否有指定的页要返回
如果有 返回指定页,没有返回默认页
----------------------------
这里你应该告知c页面,登录成功后 是否有指定的页要返回
如果有 返回指定页,没有返回默认页
#9
难道你们都没看到 Request.UrlReferrer 这个方法吗?
算了 我自己想办法吧,可能是我问题没描述清楚
谢谢大家了
算了 我自己想办法吧,可能是我问题没描述清楚
谢谢大家了
#10
Form
A.aspx:
public string id(get{return TextBox1.Text;})//定义公共属性
Server.Transfer("B.aspx");//重定向到目标页面
B.aspx:
//HTML中引入PreviousPageType 指令
virtualPath=A.aspx
<%@PreviousPageType virtualPath=A.aspx %>
//代码中获取From数据
string abcd=PreviousPage.id;
您还可以使用context对象 。于Form的方法类似,这个方法也能保持大量的数据,缺点也一样。但是用的方法比较简单
A.aspx
Context.Items["id"]="1";赋值
Server.Transfer("b.aspx");
B.aspx
string id=Context.Items["Id"].ToString();
Context.Items.Remove();//过河拆桥
ViewState Appllcation Session 静态变量 缓存Cache Cookie QueryString 都可以玩
A.aspx:
public string id(get{return TextBox1.Text;})//定义公共属性
Server.Transfer("B.aspx");//重定向到目标页面
B.aspx:
//HTML中引入PreviousPageType 指令
virtualPath=A.aspx
<%@PreviousPageType virtualPath=A.aspx %>
//代码中获取From数据
string abcd=PreviousPage.id;
您还可以使用context对象 。于Form的方法类似,这个方法也能保持大量的数据,缺点也一样。但是用的方法比较简单
A.aspx
Context.Items["id"]="1";赋值
Server.Transfer("b.aspx");
B.aspx
string id=Context.Items["Id"].ToString();
Context.Items.Remove();//过河拆桥
ViewState Appllcation Session 静态变量 缓存Cache Cookie QueryString 都可以玩
#11
那些登录未登录判断下就可以了
#12
我也是这么想的,不行吗?
还是你脑子转不过弯了。
#13
有分就有动力
#14
A是一个数据提交页面,B是一个结果查看页面,C是登陆页面。
可以在未登陆时提交数据,但是提交后如果查看结果需要已登陆。
我理解的对不?
不解:如果我没有提交数据,登陆后能到B页面么?如果能,B会显示以前提交的结果么?
#15
來看哈····
#16
Page_load(object obj,EventArgs e)
{
if(!IsPostBack)
{
if(Request.UrlReferrer!=null)
{
ViewState["UrlReferrer"]=Request.UrlReferrer.ToString();
}
}
}
使用前需要进行判断:
if (Request != null && Request.UrlReferrer != null && Request.UrlReferrer.PathAndQuery != null)
{
string previousURL = Request.UrlReferrer.PathAndQuery;
}
在使用Request.UrlReferrer时还要注意:
1. 如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值
2. 如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则 Request.UrlReferrer返回空。因
为 在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息
3. 点击刷新按钮不会改变Request.UrlReferrer
#17
跳什么页面直接Response.Redirect("*.aspx");
#18
判断下
if(Request.UrlReferrer!=null)
看看这个:
http://www.cnblogs.com/freeskycd/archive/2010/03/03/1677750.html
#19
这个方案在.net应用Microsoft安全认证时比较有用
#20
用 Session 判断
#21
楼主,你的思路是没有问题的。
但是在表单提交的时候=》查看数据=》这里检查是否登录会刷新一次页面=》
你可以使用cookie保存你上一次的登录。
或者在url上传递上一次打开的url 比如 http://www.www.com?return=asp.net.aspx
csdn上估计也是使用cookie的。登录后返回上一次登录界面。
但是在表单提交的时候=》查看数据=》这里检查是否登录会刷新一次页面=》
你可以使用cookie保存你上一次的登录。
或者在url上传递上一次打开的url 比如 http://www.www.com?return=asp.net.aspx
csdn上估计也是使用cookie的。登录后返回上一次登录界面。
#22
用session保存你登录名
只可检查session是否为空
空 Response.Redirect("c.aspx");
不为空 Response.Redirect("b.aspx");
http://www.csharp360.com/bbs
只可检查session是否为空
空 Response.Redirect("c.aspx");
不为空 Response.Redirect("b.aspx");
http://www.csharp360.com/bbs
#23
哎,可能是没说清楚我的意思,浪费大家时间了 呵呵。。杯具。。
感谢大家
感谢大家