我有几页
代表:
PageA.aspx
pageB.aspx
pageC.aspx
我有1个额外的页面
ex:AccessChecker.aspx检查此用户是否允许在此应用程序中查看此页面
如果他允许他被重定向到 pageA.aspx
Response.Redirect("~/pageA.aspx");
但真正的问题是,如果有人输入网址,例如 www.example.com/pageB.aspx ,如果没有可用的会话,则会将该人重定向到 AccessChecker.aspx 但根据我的编码,检查他的访问级别后,人员将被重定向到 www.example.com/pageA.aspx 但我希望 AccessChecker.aspx 页面重定向分页来自该人的来源..在这种情况下,用户将被重定向到 www.example.com/pageB.aspx 而不是 www.example.com/pageA.aspx ...
答案 0 :(得分:1)
在你的pageB中执行此操作
if(Session["LoggedIn"]==null)//Check Session
Response.Redirect("AccessChecker.aspx?Nav=B", false);
在您的AccessChecker代码隐藏
中 //When you want to redirect
if(Request.QueryString["Nav"]=="B")
Response.Redirect("~/pageB.aspx", false);
else
Response.Redirect("~/pageA.aspx", false);
答案 1 :(得分:1)
您是否尝试过使用
Request.UrlReferrer
所以你可以拥有
Response.Redirect(Request.UrlReferrer.ToString())
或者那些东西......
答案 2 :(得分:0)
我编写了一个可以帮助您的导航框架http://navigation.codeplex.com/
首先,配置页面和页面之间的导航。您的示例如下所示:
<state key="A" page="~/pageA.aspx">
<transition key="NoSession" to="Access">
</state>
<state key="B" page="~/pageB.aspx">
<transition key="NoSession" to="Access">
</state>
<state key="Access" page="~/AccessChecker.aspx"/>
然后,要从pageA或pageB导航到AccessChecker,请编写:
StateController.Navigate("NoSession");
要从AccessChecker导航回到他们来自的地方,请写下:
StateController.NavigateBack(1);