如何从我的asp.net应用程序注销用户?

时间:2012-03-08 16:53:08

标签: c# asp.net asp.net-membership asp.net-profiles asp.net-session

我正在使用自定义代码在我的Web应用程序中登录和注销用户。点击登录按钮,下面的代码执行:

if (Membership.ValidateUser(txtUserEmail.Text, txtUserPass.Text))
{
    HttpContext.Current.Profile.Initialize(txtUserEmail.Text.Trim(), true);
}

然后检查每个页面的pre-init上的profile.Username以检查用户是否已登录。但现在我不知道如何注销用户,以便将配置文件设置为null或其他东西。我正在点击注销按钮尝试所有这些:

protected void lnkBtnLogout_Click(object sender, EventArgs e)
{
Session.Abandon();
Request.Cookies.Clear();
FormsAuthentication.SignOut();
var p = HttpContext.Current.Profile;
Response.Redirect("/Default.aspx");
}

我正在使用变量p来检查配置文件是否已重置,但它仍然具有登录用户的所有值。那么,我该怎么做才能重置配置文件并注销用户???

1 个答案:

答案 0 :(得分:2)

在SignOut()之后立即停止重定向,所以页面停止更新任何其他内容。

所以代码将是。

protected void lnkBtnLogout_Click(object sender, EventArgs e)
{
  Session.Abandon();
  Request.Cookies.Clear();
  FormsAuthentication.SignOut();
  Response.Redirect("/Default.aspx", true);
}

重定向后检查用户是否仍然登录。用户在调用SignOut后没有注销,但是在最终cookie的结束和刷新之后,以及在下一页加载时。