响应和重定向到页面来自

时间:2012-07-04 13:20:57

标签: c# asp.net redirect response.redirect

我有几页

代表:

          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 ...

3 个答案:

答案 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);