.NET Response.Redirect在新服务器上无法正常工作

时间:2010-06-03 17:15:02

标签: asp.net vb.net windows-server-2003 response.redirect

我们的ASP服务器遇到了问题。

如果您尝试访问受密码保护的页面,它会进行安全检查并在您未登录时重定向您,保留URL(即Members / MemberLogin.aspx?doc = / PodCast / Default.aspx)

vb脚本将“/PodCast/Default.aspx”放在一个变量中,并保留它直到登录过程完成。

一旦用户键入了他们的用户名和密码,就可以执行Response.Redirect(strRedirectURL)并转到“/PodCast/Default.aspx”,而是转到default.aspx页面以便成功登录

踢球者是,我知道代码是100%正确的,因为它在我们以前的服务器上运行,但是当我们将所有数据推送到这个服务器上时,一切都可以工作但是那件。

任何建议,都会很棒!

谢谢大家!

2 个答案:

答案 0 :(得分:0)

您使用自定义重定向代码吗? ASP.NET登录后用于重定向的默认查询字符串参数为ReturnUrl

您举例:Members / MemberLogin.aspx? doc = /PodCast/Default.aspx。

基于此,我假设一旦登录,.net框架会检查Request.QueryString["ReturnUrl"]的值并将其查找为空,以便网站重定向到基本网址。

如果出于某种原因,您使用doc作为查询字符串参数构建非标准网址,则可以挂钩Login控件的OnLogin事件,例如:

标记:

<asp:Login id="Login1" runat="server" OnLoggedIn="Login1_LoggedIn" />

代码:

protected void Login1_LoggedIn(object sender, EventArgs e)
{
    string url = Request.QueryString["doc"];
    if(!string.IsNullOrEmpty(url))
    {
        Response.Redirect(url);
    }
}

答案 1 :(得分:0)

如果更新面板内存在回发机制(如按钮),则需要设置触发器 asp:PostBackTrigger ControlID =“XXXX”/