hf1*_*185 3 c# asp.net session
我的会话没有被破坏.这是我在Login.aspx.cs中设置它的方式:
Session["User"] = UserName.Text; // Set the session called User.
Run Code Online (Sandbox Code Playgroud)
MasterPage上的链接:
<a href="Login.aspx" id="loginButton"><img src="images/login.png"><span runat="server" id="authspan">Login</span></a>
Run Code Online (Sandbox Code Playgroud)
链接中的文本会根据用户是否有会话而更改:
if (Session["User"] != null)
{
authspan.InnerHtml = "Logout";
}
else
{
authspan.InnerHtml = "Login";
}
Run Code Online (Sandbox Code Playgroud)
此链接重定向到Login.aspx文件,其中在PageLoad上我告诉代码关闭会话.从理论上讲,这应该有效,对吗?
protected void Page_Load(object sender, EventArgs e)
{
if (Session["User"] != null)
{
Response.Redirect("Default.aspx"); // Redirect user.
Session["User"] = null;
Session.Remove("User");
}
else
{
// run code that logs the user in, and sets up the session.
}
}
Run Code Online (Sandbox Code Playgroud)
如何正确结束登录用户?
您必须先清除会话然后重定向.
Session["User"] = null;
Session.Remove("User");
Response.Redirect("Default.aspx"); // Redirect user.
Run Code Online (Sandbox Code Playgroud)
另请注意,在客户端删除会话ID也更安全:
var sessionCookie = new HttpCookie("ASP.NET_SessionId");
sessionCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(sessionCookie);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
669 次 |
最近记录: |