运行SQL语句然后重定向时的页面404

时间:2013-04-09 16:26:57

标签: c# asp.net webforms single-sign-on response.redirect

我有一个非常奇怪的错误,我对ASP.NET不太好,但我正在帮助开发一个单点登录应用程序,我无法重定向用户。我将尽可能保持简单,这就是它的工作原理:

1。)他们来自另一个网站,它传递一个单点登录对象及其ID

2.。)在页面加载时,我们使用该ID在我们的数据库中查找并获取他们的信息,如果他们缺少信息,他们必须填写它。

3。)如果他们没有丢失任何信息,它会将他们的ID插入活动会话表,然后将其重定向到最终网站

麻烦的是,我可以在页面加载时很好地执行SQ​​L插入语句,并且它从Single Sign-On对象接收数据就好了;但是当我运行SQL insert语句然后将它们重定向到另一个页面时,页面只是404s。当重定向被放置在那里时,我们也会收到单点登录错误,只是说它无法完成。我们注册了SQL语句运行,但它们没有被重定向;就像说,它只是404s。

出现这种情况的原因是什么?以下是代码中的一般流程:

protected void Page_Load(object sender, EventArgs e)
{
     SSOObject x = ServiceProvider.RecieveSSO(Request);
     userID = x.ID;

     SqlConnection conn = new SqlConnection(connString);
     conn.Open();
     SqlCommand comm = ("INSERT INTO etc...");

     comm.Parameters.AddWithValue("@ID", userID);

     comm.ExecuteNonQuery();
     conn.Close();
     comm.Dispose();

     // It works fine up to here, but if I add this it 404's:
     Response.Redirect("http://ourwebsite.com/user/etc...");
}

提前感谢任何给这一点的人,这让我感到困惑。

编辑:遗漏了一条重要的信息。如果我注释掉SSO代码并只是硬核ID,那么整个过程都有效!

1 个答案:

答案 0 :(得分:0)

我只需要传入false(参数是结束页面的执行),如下所示:

Response.Redirect("http://website.com", false);