ASP.NET-Response.Redirect不填充URL引用程序

问题描述 投票:12回答:3

我觉得我已经做过很多次了,但是我无法终生发现问题所在。

Default.aspx:

protected void Page_Load(object sender, EventArgs e)
{
   var r1 = Request.UrlReferrer; // null
   var r2 = Request.ServerVariables["HTTP_REFERRER"]; // null
}

SingleSignOn.aspx:

protected void Page_Load(object sender, EventArgs e)
{
   Response.Redirect("/");
}

如果我在URL中键入“ /SingleSignOn.aspx”,它将重定向到Default.aspx,但是引荐来源网址为null。

我在这里想念什么?

我想做的事(这是一个简化的示例),在任何页面上,我都会有一些JavaScript来执行以下操作:

window.location.replace('~/SingleSignOn.aspx');

您猜对了,然后登录用户并重定向到主页。

但是如果我们只是从那里来到的话,我需要在JavaScript中构建逻辑以不重定向到SingleSignOn.aspx页面。

引荐来源网址是否仅由实际的链接用户点击填充?

然后我该怎么做?我不想使用QueryString,因为我不想在URL中看到它。

我能想到的唯一其他选择是会话。

请帮助。 =(

我觉得我已经做过很多次了,但是我无法终生发现问题所在。 Default.aspx:受保护的void Page_Load(对象发送者,EventArgs e){var r1 = Request ....

asp.net response.redirect referrer http-referer
3个回答
9
投票

所以,我已经做了一些Google搜索来找到我的答案。


0
投票

只是预感,但请尝试使用绝对URL代替/甚至包括http://部分。


0
投票

已经很晚了,但是您可以管理响应。重定向内容,您可以将查询参数用作response.redirect("/?url=home.aspx&q=whatever")

© www.soinside.com 2019 - 2024. All rights reserved.