asp.net如何返回上一页

asp.net如何返回上一页,asp.net,Asp.net,我开发了一个基于角色的应用程序,我有管理员、操作员等角色。在每个页面上,我都会检查当前用户是否分配了角色,然后才允许。在我的情况下,我希望在“Administrator.aspx”的url中键入“Operators”时限制“Operators”然后进入…在这种情况下,如果用户在A页上并试图点击管理员url,它应该重定向回A页..A页也可以是任何其他页面名称..如何实现这一点我正在尝试这种方式,但它不起作用 if (ViewState["URLReferrer"] == null)

我开发了一个基于角色的应用程序,我有管理员、操作员等角色。在每个页面上,我都会检查当前用户是否分配了角色,然后才允许。在我的情况下,我希望在“Administrator.aspx”的url中键入“Operators”时限制“Operators”然后进入…在这种情况下,如果用户在A页上并试图点击管理员url,它应该重定向回A页..A页也可以是任何其他页面名称..如何实现这一点我正在尝试这种方式,但它不起作用

       if (ViewState["URLReferrer"] == null)
            ViewState["URLReferrer"] = Request.UrlReferrer;

        if (!HttpContext.Current.User.IsInRole("Control User"))
        {
            //If user is trying to access the admin page ..send back to the page where he is coming from.
            Response.Redirect(Convert.ToString(ViewState["URLReferrer"]));
        }

我试过了。UrlReferer具有Uri类型,但您需要字符串才能使用Response.Redirect

if (Request.UrlReferrer == null || string.IsNullOrEmtpy(Request.UrlReferrer.AbsoluteUri))
    Response.Redirect("defaultPage")
else
    Response.Redirect(Request.UrlReferrer.AbsoluteUri);

上面的代码在我的测试网站中工作。试试看。

小心这不是100%可靠的。这是一个主机头,病毒扫描程序和代理服务器可以阻止它。我会改为使用querystring参数。获取“对象引用未设置为对象的实例”。错误。您的意思是所有链接都必须具有retrunUrl querystring吗?对于用户239684,可能您正在开始调试包含此代码的页面,在这种情况下没有引用程序,因此需要检查它是否为null,我将更新我的答案我不知道..我是asp.net新手..我猜直接在url栏中键入adminpage.aspx时行为会有所不同..您认为或建议如何设置所有这些。获取“对象引用未设置为对象的实例”。错误。。。