我遇到了一个非常奇怪的错误,我对 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 进行硬核化,那么整个过程都可以正常工作!