zoukankan      html  css  js  c++  java
  • 使用COOKIE对像实现保存用户基本信息(结合Session),ASP.Net实现用户登录全过程

    1.创建一个WEB用户控件页面

          。添加两个HTml 客户端DIV     并专为服务控件 前台代码如下

                     <div     id="divLogin"     runat="server">   ……</div>

                     <div     id="divMain"       runat="server" > ……</div>

          。在div   divLogin 中添加 Label(用户名)   textBox(用户名)    Label( 密码)    textBOx(密码)   Checkbox(记住我)  button(登入)

          。在div    DivMain   中 添加 Label(HI,)  Label(XXX)

    2.WEB用户控件的后台代码实现      

            protected void Page_Load(object sender, EventArgs e)
              {
                 //判断是否有Cookie信息可读
                 if (Request.Cookies.Get("loginUserName") != null)
                   {
                      //将Cookie中的登录信息读取出来保存到Session["loginUser"]中
                      Session["loginUser"] = Request.Cookies["loginUserName"].Value;
                   }

                 //通过判断Session["loginUser"]的值是否为空位判断是否登陆过,以及显示哪一个Div
                 if (Session["loginUser"] == null)
                   {
                      this.divLogin.Visible = true;
                      this.divMain.Visible = false;
                   }
                 else
                   {
                      this.divLogin.Visible = false;
                      this.divLoginMain.Visible = true;
                     this.lblUserMessage.Text = Session["loginUser"].ToString();
                   }
             }
           protected void btnLogin_Click(object sender, EventArgs e)   //登录按钮Click事件
             {
                //保存登陆信息到Session["loginUser"]
                if (ValidateUser(this.txtID.Text, this.txtPWD.Text))
                  {
                     Session["loginUser"] = this.txtID.Text;
                     //如果选择了保存Cookie
                      if (this.chkIsSaveCookie.Checked)
                        {
                          HttpCookie cookie = new HttpCookie("loginUserName",this.txtID.Text);
                          cookie.Expires = DateTime.Now.AddMonths(1);
                          Response.Cookies.Add(cookie);
                       }
                  }
                  //刷新当前页面
                  Response.Redirect(Request.Url.ToString());
             }

    /// <summary>
    /// 这里省略了访问数据库验证的过程
    /// </summary>
    /// <param name="id">登陆账号</param>
    /// <param name="pwd">登陆密码</param>
    /// <returns></returns>
    public bool ValidateUser(string id, string pwd)     //该方法用于数据验证,此处略
     {
         return true;
     }

    protected void btnSafeExit_Click(object sender, EventArgs e)     //安全退出按钮Click事件
      {
         //清空Session中的用户信息
         Session["loginUser"] = null;
         //将本地Cookie中的信息移除----让Cookie过期
         HttpCookie cookie = Request.Cookies["loginUserName"];
         if (cookie != null)
           {
             cookie.Expires = DateTime.Now.AddDays(-10);
             Response.Cookies.Add(cookie);
           }

                    //刷新当前页面
                    Response.Redirect(Request.Url.ToString());

              }

  • 相关阅读:
    AXI协议(一)
    System Verilog基础(一)
    AHB协议
    验证的概述
    简易APB4 slave实践
    APB协议
    指令跳转与预测
    HDU4405--Aeroplane chess(概率dp)
    BZOJ1419——Red is good(期望dp)
    BZOJ1426----收集邮票(期望dp)
  • 原文地址:https://www.cnblogs.com/yingger/p/2445166.html
Copyright © 2011-2022 走看看