2

我遇到了一个非常奇怪的错误,我对 ASP.NET 并不擅长,但我正在帮助开发单点登录应用程序,但在重定向用户时遇到了麻烦。我将使其尽可能简单,这就是它的工作原理:

1.) 他们来自另一个网站,它传递了一个单点登录对象,其中包含他们的 ID

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

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

问题是,当页面加载并从 Single Sign-On 对象接收数据时,我可以很好地执行 SQL 插入语句;但是当我运行 SQL 插入语句然后将它们重定向到另一个页面时,页面只有 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 进行硬核化,那么整个过程都可以正常工作!

4

1 回答 1

0

我只需要像这样传递 false (参数是结束页面的执行):

Response.Redirect("http://website.com", false);
于 2013-04-11T19:40:43.503 回答