0

我有几页

例如:

          PageA.aspx

          pageB.aspx

          pageC.aspx

我还有 1 页

例如: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 ...

4

3 回答 3

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);
于 2012-07-04T13:25:52.027 回答
1

您是否尝试过使用

Request.UrlReferrer

所以你可以有

Response.Redirect(Request.UrlReferrer.ToString())

或类似的规定...

于 2012-07-04T13:29:50.897 回答
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);
于 2012-07-04T13:50:22.233 回答