1

我有一个 aspx 页面,其中包含 2 个用于用户名和密码的文本框。单击提交按钮时,它会重定向到另一个页面。此页面有 2 个按钮,名为“过期会话”和“转到个人资料页面”。现在单击第二个按钮将用户带到另一个页面,他可以在其中看到该页面的内容。我希望当用户单击过期会话按钮时,会话应该过期,然后当用户单击“转到个人资料页面”时按钮,他将被重定向到页面,但由于会话现在已经结束,因此没有内容可见。这是提交按钮编码。

 protected void clicked(object sender, System.EventArgs e)
    {
        Session["username"] = textbox_username.Text.ToString();
        Session["password"] = textbox_password.Text.ToString();
        message.Text = "Session saved!";
        textbox_username.Text = null;
        textbox_password.Text = null;
        Response.Redirect("SessionTest.aspx");
    }

我不知道如何通过单击“过期会话”按钮使会话过期。我是新手。

4

4 回答 4

7

简短问题的简短回答:

//Destroys the session
Session.Clear();
Session.Abandon();
Response.Redirect("Default.aspx");

在上面的代码之前使用Session.Clear();,如果你想清理会话值,但是Session.Abandon();你会破坏它。

检查会话

if(Session["username"] == null) { }
于 2012-09-25T12:03:41.450 回答
5

您可以尝试使用此代码

    Session.Clear();
    Session.Abandon();
    //FormsAuthentication.SignOut(); // If you are using FormsAuthentication
    Response.Redirect("Your.aspx");

你可以在这里查看

if(Session["username"] == null)
{
...
}
于 2012-09-25T12:04:26.477 回答
1

当您单击“过期会话”按钮时,您不会,那么您的所有会话都应该过期

因此,您可以在按钮单击事件中使用以下功能:

 protected void btnExpireSession_Click(object sender, EventArgs e)
 {
     Session.Abandon();
 }

我想这会对你有所帮助。

于 2012-09-25T12:10:12.307 回答
1

Session.Abandon()销毁会话。这可能在用户注销时使用。 Session.Clear()只是从对象中删除所有值(内容)。

于 2012-09-25T12:12:35.807 回答