1

如果我点击一个链接(没有登录网站),我会导航到这个页面:

http://localhost:59196/Login.aspx?ReturnUrl=%2fTest%2fContacts.aspx

当我登录到该站点时,我希望被重定向到我的主页而不是测试 Contacts.aspx 页面。我该如何解决这个问题?

如果我这样做,那么我没有登录。

protected void Page_Load(object sender, EventArgs e)
    {


    }


    protected void Login1_LoggingIn(object sender, LoginCancelEventArgs e)
    {
        Response.Redirect("Home");
    }
4

4 回答 4

1

只需将您点击的链接网址更改为:

http://localhost:59196/Login.aspx?ReturnUrl=Index.aspx
于 2013-03-13T10:18:24.810 回答
1

我认为您在未登录的情况下单击了 Test Contact.aspx 页面,因此您已被重定向到登录页面,查询字符串为 ReturnURl = test contact.aspx,这可能用于从登录页面重定向。

因此,您可以通过单击登录页面中的登录按钮直接重定向到您的页面页面,而不是使用返回 url 查询字符串。希望它有效。

我的意思是在

Loginbutton_click()
{
//login validation code here 
 //after successful validation
Response.redirect("Yyourhomepageurlhere");
}
于 2013-03-13T10:20:13.407 回答
0

你想重定向到

http://localhost:59196/Login.aspx?ReturnUrl=%2fTest%2fIndex.aspx

而不是

http://localhost:59196/Login.aspx?ReturnUrl=%2fTest%2fContacts.aspx

换句话说,您点击的链接应该指向上面的第一个链接,而不是第二个。

剩下的问题是链接是如何生成的?它们是硬编码的还是您使用 MVC 并以某种方式生成链接?链接是否在您的控制范围内生成?

看起来您的代码会查看 ReturnUrl 查询字符串参数,并在成功登录时重定向到它。

您是从联系人页面进入登录页面的吗?如果是这样,那么 ReturnUrl 可能是根据您来自哪里而动态生成的。您可能需要将其固定为索引页面(我假设这就是您所说的)。不过要小心,其他开发人员可能希望这个链接是动态的。

于 2013-03-13T10:08:00.910 回答
0

我必须改变事件。

protected void Login1_LoggedIn(object sender, EventArgs e)
    {
        Response.Redirect("Home");
    }
于 2013-03-13T10:34:06.667 回答