我有一个非常奇怪的错误,我对ASP.NET不太好,但我正在帮助开发一个单点登录应用程序,我无法重定向用户。我将尽可能保持简单,这就是它的工作原理:
1。)他们来自另一个网站,它传递一个单点登录对象及其ID
2.。)在页面加载时,我们使用该ID在我们的数据库中查找并获取他们的信息,如果他们缺少信息,他们必须填写它。
3。)如果他们没有丢失任何信息,它会将他们的ID插入活动会话表,然后将其重定向到最终网站
麻烦的是,我可以在页面加载时很好地执行SQL插入语句,并且它从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,那么整个过程都有效!
答案 0 :(得分:0)
我只需要传入false(参数是结束页面的执行),如下所示:
Response.Redirect("http://website.com", false);