Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 引用URL不工作_C#_Asp.net_.net - Fatal编程技术网

C# 引用URL不工作

C# 引用URL不工作,c#,asp.net,.net,C#,Asp.net,.net,我正在尝试使用以下代码捕获引用URL。指向该页的重定向无效。请帮我解决这个问题 if (!Page.IsPostBack) { ViewState["PreviousPage"] = Request.ServerVariables["HTTP_REFERER"]; } protected void btnLogin_Click(object sender, EventArgs e) { if (ViewState["PreviousPage"

我正在尝试使用以下代码捕获引用URL。指向该页的重定向无效。请帮我解决这个问题

  if (!Page.IsPostBack)
    {
        ViewState["PreviousPage"] = Request.ServerVariables["HTTP_REFERER"];
    }

  protected void btnLogin_Click(object sender, EventArgs e)
  {
    if (ViewState["PreviousPage"] != null)
       {
          Response.Redirect(ViewState["PreviousPage"].ToString());
       }
  }

我不确定它是否有用,但您也可以尝试使用请求对象的url Referer属性访问它

Request.UrlReferrer
这可能有用


重定向((ViewState[“PreviousPage”]+“.aspx”)

在我看来,你可能正在这里重建车轮

默认情况下,有一种内置的.NET方法可以通过表单身份验证实现这一点。您将获得一个查询字符串,自动将您重定向到应用程序中的页面。如果您在未登录时点击了某个页面,该应用程序会在您登录之前记住您想去的地方,并在您进行身份验证时将您发送到那里


这就是你想要做的吗?

这里可能会发生一些事情

如果您直接访问登录页面,那么referer总是为null。因此,请确保您的代码能够处理该问题

如果(!Page.IsPostBack)在页面中,您还没有说
在哪里,如果它在页面中,那么您的问题很可能是
ViewState[“PreviousPage”]=Request.ServerVariables[“HTTP\u REFERER”]不会在回发期间保留
视图状态

您可以通过将检查移动到
Page\u Load
或添加
ViewState.SetDirty(true)来修复此问题
页面_InitComplete


另一个可能的问题是,出于隐私原因,一些浏览器删除了
HTTP\u REFERER
标题。同样,请确保您的代码处理的值为null。

我非常确定OP尝试的方式不会起作用,而我一直在使用您建议的属性,并且它总是起作用+1.我没有收到任何错误消息。我是从,例如previous.aspx进入此页面的,但单击按钮后,它将重定向到该页面。它不工作。什么不起作用?有错误吗?你期望它做什么?您的第一个IF语句是用什么方法生成的?^完全正确!如果在设置后检查ViewState[“PreviousPage”]值,它包含什么?是空的吗?重定向是否发生,但指向错误的URL?我假设您的
if语句
page\u load
eventHandler中?你收到了什么错误消息?可能是因为有人直接进入了你的登录页面,所以没有设置推荐人。这个案子处理得好吗?我知道OP没有给出很多细节,但你能解释一下为什么这可能会起作用吗?我没有使用.net身份验证。确定-只有当用户单击链接时才会填充推荐人。重定向、元刷新、server.transfer和直接键入URL都会将referer设置为null。在设计时请记住这一点。我将遵循以下链接。因此,在该链接之后,当您在管理页面或开发页面上时,您可以单击“转到默认页面”按钮,该按钮将带您进入默认页面。点击“后退”按钮,进入上一页。单击“后退”按钮时会发生什么情况?有什么例外吗?没有什么?404?