登录表单和会话

Zak*_*aki 0 c# asp.net session login

我有一个带有两个框的登录表单和按钮上的按钮我使用sql数据库验证用户并将id存储在会话中并设置FormsAuthentication供以后使用.在注销按钮上我重定向他们logout.aspx我在哪里销毁会话并重定向到登录页面:

 Session.Abandon();
 FormsAuthentication.SignOut();
Run Code Online (Sandbox Code Playgroud)

注销后,如果我使用浏览器后退按钮返回,我仍然可以看到我的previouse页面,但如果我刷新我得到 object reference not set to an instance of an object.

protected void Page_Load(object sender, EventArgs e)
Line 33:         {
Line 34:             string id = Session["ID"].ToString();
Run Code Online (Sandbox Code Playgroud)

如果发生这种情况,将用户返回登录的最佳方法是什么?

Agh*_*oub 5

诺娜:我建议你使用

if(Session["ID"] != null)
{

}
Run Code Online (Sandbox Code Playgroud)

但我也建议你使用它 configuration

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="Login.aspx"
           defaultUrl="default.aspx" />
  </authentication>
</system.web>
Run Code Online (Sandbox Code Playgroud)

您的注销链接/按钮应指向包含此代码的页面以及您想要的任何其他内容.

private void Page_Load(object sender, System.EventArgs e)
{
    // Put user code to initialize the page here
    Session.Abandon();
    FormsAuthentication.SignOut();
}
Run Code Online (Sandbox Code Playgroud)

Nota:序列图

在此输入图像描述