我遇到了一个非常奇怪的错误,我对 ASP.NET 一点也不擅长,但我正在帮助开发单点登录应用程序,但我在重定向用户时遇到了问题。我将使其尽可能简单,这就是它的工作原理:
1.) 他们来自另一个网站,它传递一个带有他们 ID 的单点登录对象
2.) 在页面加载时,我们使用该 ID 在我们的数据库中查找并获取他们的信息,如果他们缺少信息,他们必须填写。
3.) 如果他们没有遗漏任何信息,它将他们的 ID 插入到事件 session 表中,然后将他们重定向到最终网站
问题是,我可以在页面加载时很好地执行 SQL 插入语句,并且它可以很好地从 Single Sign-On 对象接收数据;但是当我运行 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,整个过程就可以了!
最佳答案
我只需要像这样传递 false(参数是结束页面的执行):
Response.Redirect("http://website.com", false);
关于c# - 运行 SQL 语句时出现页面 404,然后重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15907402/