步步为营-76-用户登录(Session+Cookie)

说明:cookie是保存在浏览器的.Session是存储在服务器的

1 同样UI页面还是web前端提供

1.1 首先,经过验证码校验:将系统产生的验证码放入到Session中,然后取Session值
注意几点 1:放入Session时需要实现 IRequiresSessionState接口(因为是ashx,一般处理程序)

     2:使用前先判断是否为空
            3:用完验证码Session值注销(否则会有漏洞)

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Drawing.Imaging;
using System.Web.SessionState;

namespace _06_图片处理
{
    /// <summary>
    /// ValidateCode 的摘要说明
    /// </summary>
    public class ValidateCode : IHttpHandler,IRequiresSessionState
    {

        public void ProcessRequest(HttpContext context)
        {
            //01 验证码是图片,所以修改Type
            context.Response.ContentType = "image/jpeg";
            //02 创建画布
            Bitmap bm = new Bitmap(70,30);

            //03 创建绘图工具
            Graphics g =   Graphics.FromImage(bm);
            //03-01 设置背景色
            g.Clear(Color.Green);
            //04 准备绘制
            string strArry = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            string vCode = string.Empty;
            Random r = new Random ();
            for (int i = 0; i < 4; i++)
            {
                vCode += strArry[r.Next(strArry.Length)];
            }
            //05 开始绘制
            g.DrawString(vCode,new Font (new FontFamily("宋体"),20),new SolidBrush(Color.Red),0,0);
            //06 保存
            bm.Save(context.Response.OutputStream,ImageFormat.Jpeg);
            //07 将验证码的值写入Session中,方便以后校验
           context.Session["ValidateCode"] = vCode;
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

ValidateCode 验证码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="_04_用户登录_cookie_Session_.Login" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <title>网站管理后台登录
    </title>
    <script src="Script/jquery-1.7.1.min.js"></script>
     <script>
         $(function () {
             $("#changeCode").click(function () {
                 $(‘#Image1‘).attr("src", $(‘#Image1‘).attr("src") + ‘1‘);
             });
         })
    </script>
    <link href="./网站管理后台登录_files/style.css" rel="stylesheet" type="text/css">

    <style type="text/css">
        <!--
        body {
            margin-top: 150px;
        }
        -->
    </style>

</head>
<body>
    <form name="form1" method="post" action="" id="form1">
        <div>
            <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTk5MTEyNDkyMmQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFCGJ0bkxvZ2luDPRvv9LGLqiVqStAd5fp6Kr+5/0=">
        </div>

        <div>

            <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQLemczKAwLd+/CSBQK1qbSRCwLChPzDDQKC3IeGDDY6Y328gLlSy6Sd5458JxEqkhYO">
        </div>
        <div>
            <table width="549" height="287" border="0" align="center" cellpadding="0" cellspacing="0" background="./网站管理后台登录_files/login_bg.jpg">
                <tbody>
                    <tr>
                        <td width="23">
                            <img src="./网站管理后台登录_files/login_leftbg.jpg" width="23" height="287"></td>
                        <td width="503" valign="top">
                            <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                <tbody>
                                    <tr>
                                        <td width="49%" valign="bottom">
                                            <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
                                                <tbody>
                                                    <tr>
                                                        <td height="100" valign="top" class="login_text">
                                                            <div align="left">
                                                                网站后台管理系统
                                                            </div>
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td>
                                                            <div align="right">
                                                                <img src="./网站管理后台登录_files/login_img.jpg" width="104" height="113"></div>
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                        </td>
                                        <td width="2%">
                                            <img src="./网站管理后台登录_files/login_line.jpg" width="6" height="287"></td>
                                        <td width="49%">
                                            <div align="right">
                                                <table width="223" border="0" cellspacing="0" cellpadding="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                                <img src="./网站管理后台登录_files/login_tit.jpg" width="223" height="30"></td>
                                                        </tr>
                                                        <tr>
                                                            <td>
                                                                <table width="100%" border="0" cellspacing="10" cellpadding="0">
                                                                    <tbody>
                                                                        <tr>
                                                                            <td width="28%">
                                                                                <div align="left">用户名:</div>
                                                                            </td>
                                                                            <td width="72%">
                                                                                <div align="left">
                                                                                    <span class="style1">
                                                                                        <input name="txtClientID" type="text" id="txtClientID" class="form2" style="height: 15px; width: 140px;">
                                                                                    </span>
                                                                                </div>
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td>
                                                                                <div align="left">密&nbsp;码:</div>
                                                                            </td>
                                                                            <td>
                                                                                <div align="left">
                                                                                    <span class="style1">
                                                                                        <input name="txtPassword" type="password" id="txtPassword" class="form2" style="height: 15px; width: 140px;"></span>
                                                                                </div>
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td>
                                                                                <div align="left">验证码:</div>
                                                                            </td>
                                                                            <td>
                                                                                <div align="left">
                                                                                    <img id="Image1" src="./网站管理后台登录_files/ValidateCode.ashx?1" style="border-width: 0px;">&nbsp;
                            <a href="#" id="changeCode">换一张</a>
                                                                                </div>
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td>
                                                                                <div align="left">验证码:</div>
                                                                            </td>
                                                                            <td>
                                                                                <div align="left">
                                                                                    <span class="style1">
                                                                                        <input name="txtCode" type="text" size="8" id="txtCode" class="form2" style="height: 15px;"></span>
                                                                                </div>
                                                                            </td>
                                                                        </tr>
                                                                    </tbody>
                                                                </table>
                                                            </td>
                                                        </tr>
                                                        <tr>
                                                            <td align="center">
                                                                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                                                    <tbody>
                                                                        <tr>
                                                                            <td>
                                                                                <div align="center"><a href="http://www.800kb.com/ClientManager/#"></a></div>
                                                                            </td>
                                                                            <td>
                                                                                <div align="center">

                                                                                    <input type="image" name="btnLogin" id="btnLogin" src="./网站管理后台登录_files/login_menu2.jpg" style="border-width: 0px;"><a href="Login.aspx.cs"></a>
                                                                                </div>
                                                                            </td>
                                                                        </tr>
                                                                    </tbody>
                                                                </table>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                            </div>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                        </td>
                        <td width="23">
                            <img src="./网站管理后台登录_files/login_rigbg.jpg" width="23" height="287"></td>
                    </tr>
                </tbody>
            </table>
        </div>
    </form>

</body>
</html>

aspx

using NewsBLL;
using NewsModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace _04_用户登录_cookie_Session_
{
    public partial class Login : System.Web.UI.Page
    {
        UserInfoBll bll = new UserInfoBll();
        UserInfo userInfo = new UserInfo();
        protected void Page_Load(object sender, EventArgs e)
        {
            //01 判断get请求还是post请求
            if (Request["txtCode"] != null)
            {
                //02 检查验证码是否正确
                if (CheckValidateCode())
                {
                   //03 检查用户名 密码是否正确
                    //03-01 获取用户名和密码
                    string userName = Request["txtClientID"];
                    string userPwd = Request["txtPassword"];
                    //03-02 根据用户名获取用户信息
                    int userId;
                    if (int.TryParse(userName, out userId))
                    {
                        userInfo = bll.GetUserInfoByUserId(userId);
                        if (userInfo != null)
                        {
                            if (userInfo.UserPwd == userPwd)
                            {
                                Response.Write("登录成功");
                            }
                            else
                            {
                                Response.Write("密码错误");
                            }
                        }
                        else {
                            Response.Write("用户不存在");
                        }

                    }
                    else
                    {
                        Response.Write("用户名为数字");
                    }

                }
                else {
                    Response.Write("验证码不正确");
                }
            }
        }

        #region 01 检查验证码
        private bool CheckValidateCode()
        {
            //01-01 获取验证码的值,将系统产生的验证码放入到Session中,然后取Session值
            //注意两点 1:放入Session时需要实现 IRequiresSessionState接口(因为是ashx,一般处理程序)
            //注意两点 2:用完验证码Session值注销(否则会有漏洞)
            if (Session["ValidateCode"] == null)
            {
                return false;
            }
            string validateCode = Session["ValidateCode"].ToString();
            //01-02 获取文本框中输入的值
            string vCode = Request["txtCode"];

            //01-03 判断是否相等
            if (vCode.Equals(validateCode, StringComparison.InvariantCultureIgnoreCase))
            {
                //使用后注销session值
                Session["ValidateCode"] = null;
                return true;
            }
            else
            {
                return false;
            }

        }
        #endregion

    }
}

aspx.cs

1.2  如果登录成功,创建session,跳转到ShowUserInfo界面
                                Session["UserInfo"] = userInfo;
                                Response.Redirect("ShowUserInfo.aspx");

1.3 为了防止用户直接通过地址访问,所以进入ShowUserInfo等界面时需要判断Session值

using NewsModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace _04_用户登录_cookie_Session_
{
    public partial class ShowUserInfo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //判断Session["userInfo"]是否为空
            if (Session["userInfo"] == null)
            {
                Response.Redirect("Login.aspx");
            }
            else {
                Response.Write("欢迎" + ((UserInfo)Session["userInfo"]).UserName+"登录本系统");
            }
        }
    }
}

ShowUserInfo

1.4 但是如果以后每个页面都需要做同样的验证,会出现大量重复代码,而且一旦需求变更,不利于系统维护,
    封装一个类,继承Page类=>添加Page_Init(object sender,EventArgs e)方法  进行Session校验.

注意:Page_Init 这里用到了页面生命周期大致分为:页请求=>启动=>初始化=>加载=>执行=>呈现=>卸载 等周期

我们在aspx.cs 中写的代码是在加载阶段Page_Load();而Page_Init是在初始化阶段.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI;

namespace NewsCommon
{
   public  class CheckSession:Page
    {
       public void Page_Init(object sender,EventArgs e)
       {
           //判断Session["userInfo"]是否为空
           if (Session["userInfo"] == null)
           {
               Response.Redirect("Login.aspx");
           }
       }
    }
}

NewsCommon===CheckSession

1.5 同时,ShowUserInfo页面继承CheckSession

using NewsCommon;
using NewsModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace _04_用户登录_cookie_Session_
{
    public partial class ShowUserInfo : CheckSession
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //判断Session["userInfo"]是否为空==通过NewsCommon中的CheckSession校验
                Response.Write("欢迎" + ((UserInfo)Session["userInfo"]).UserName+"登录本系统");

        }
    }
}

ShowUserInfo

1.6 另外添加"记住我"和退出功能==多值cookie 41行和95行

  1 using NewsBLL;
  2 using NewsModel;
  3 using System;
  4 using System.Collections.Generic;
  5 using System.Linq;
  6 using System.Web;
  7 using System.Web.UI;
  8 using System.Web.UI.WebControls;
  9
 10 namespace _04_用户登录_cookie_Session_
 11 {
 12     public partial class Login : System.Web.UI.Page
 13     {
 14         UserInfoBll bll = new UserInfoBll();
 15       public  UserInfo userInfo = new UserInfo();
 16         protected void Page_Load(object sender, EventArgs e)
 17         {
 18             //01 判断get请求还是post请求
 19             if (Request["txtCode"] != null)
 20             {
 21                 //02 检查验证码是否正确
 22                 if (CheckValidateCode())
 23                 {
 24                     //03 检查用户名 密码是否正确
 25                     //03-01 获取用户名和密码
 26                     string userName = Request["txtClientID"];
 27                     string userPwd = Request["txtPassword"];
 28                     //03-02 根据用户名获取用户信息
 29                     int userId;
 30                     if (int.TryParse(userName, out userId))
 31                     {
 32                         userInfo = bll.GetUserInfoByUserId(userId);
 33                         if (userInfo != null)
 34                         {
 35                             if (userInfo.UserPwd == userPwd)
 36                             {
 37                                 //01 登录成功,创建session
 38                                 Session["UserInfo"] = userInfo;
 39                                 //02 判断是否选中"记住我1周"的cookie判断
 40                                 //写入cookie====多值cookie
 41                                 if (Request["Remember"] == "on")
 42                                 {
 43                                     Response.Cookies["userInfo"]["UserId"] = userInfo.UserId.ToString();
 44                                     Response.Cookies["userInfo"]["UserName"] = userInfo.UserName;
 45                                     Response.Cookies["userInfo"]["UserPwd"] = userInfo.UserPwd;
 46                                     Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(7);
 47
 48                                 }
 49                                 //删除cookie
 50                                 if (Request["Forget"] == "on")
 51                                 {
 52                                     Session["UserInfo"] = null;
 53                                     Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(-7);
 54                                     Response.Write("退出成功,Session值已清除,cookie值已清除");
 55                                     //程序不再往下走
 56                                     Response.End();
 57
 58                                 }
 59                                 //03跳转页面
 60                                 Response.Redirect("ShowUserInfo.aspx");
 61                             }
 62                             else
 63                             {
 64                                 Response.Write("密码错误");
 65                             }
 66                         }
 67                         else
 68                         {
 69                             Response.Write("用户不存在");
 70                         }
 71
 72                     }
 73                     else
 74                     {
 75                         Response.Write("用户名为数字");
 76                     }
 77
 78
 79                 }
 80                 else
 81                 {
 82                     Response.Write("验证码不正确");
 83                 }
 84             }
 85             else
 86             {
 87                 //get 请求
 88                 //01 判断Session值是否存在
 89                 if ( Session["UserInfo"]!= null)
 90                 {
 91                     //如果 Session["UserInfo"]存在,直接进行跳转
 92                     Response.Redirect("ShowUserInfo.aspx");
 93                 }
 94                 //02 判断Cookie值是否存在
 95                 if ((Request.Cookies["userInfo"]) != null)
 96                 {
 97                     userInfo.UserId = Convert.ToInt32(Request.Cookies["userInfo"]["UserId"]);
 98                     userInfo.UserName = Request.Cookies["userInfo"]["UserName"];
 99                     userInfo.UserPwd = Request.Cookies["userInfo"]["UserPwd"];
100                 }
101             }
102         }
103
104         #region 01 检查验证码
105         private bool CheckValidateCode()
106         {
107             //01-01 获取验证码的值,将系统产生的验证码放入到Session中,然后取Session值
108             //注意两点 1:放入Session时需要实现 IRequiresSessionState接口(因为是ashx,一般处理程序)
109             //注意两点 2:用完验证码Session值注销(否则会有漏洞)
110             if (Session["ValidateCode"] == null)
111             {
112                 return false;
113             }
114             string validateCode = Session["ValidateCode"].ToString();
115             //01-02 获取文本框中输入的值
116             string vCode = Request["txtCode"];
117
118             //01-03 判断是否相等
119             if (vCode.Equals(validateCode, StringComparison.InvariantCultureIgnoreCase))
120             {
121                 //使用后注销session值
122                 Session["ValidateCode"] = null;
123                 return true;
124             }
125             else
126             {
127                 return false;
128             }
129
130         }
131         #endregion
132
133
134     }
135 }

aspx.cs

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="_04_用户登录_cookie_Session_.Login" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <title>网站管理后台登录
    </title>
    <script src="Script/jquery-1.7.1.min.js"></script>
    <script>
        $(function () {
            $("#changeCode").click(function () {
                $(‘#Image1‘).attr("src", $(‘#Image1‘).attr("src") + ‘1‘);
            });
        })
    </script>
    <link href="./网站管理后台登录_files/style.css" rel="stylesheet" type="text/css">

    <style type="text/css">
        <!--
        body {
            margin-top: 150px;
        }
        -->
    </style>

</head>
<body>
    <form name="form1" method="post" action="" id="form1">
        <div>
            <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTk5MTEyNDkyMmQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFCGJ0bkxvZ2luDPRvv9LGLqiVqStAd5fp6Kr+5/0=">
        </div>

        <div>

            <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQLemczKAwLd+/CSBQK1qbSRCwLChPzDDQKC3IeGDDY6Y328gLlSy6Sd5458JxEqkhYO">
        </div>
        <div>
            <table width="549" height="287" border="0" align="center" cellpadding="0" cellspacing="0" background="./网站管理后台登录_files/login_bg.jpg">
                <tbody>
                    <tr>
                        <td width="23">
                            <img src="./网站管理后台登录_files/login_leftbg.jpg" width="23" height="287"></td>
                        <td width="503" valign="top">
                            <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                <tbody>
                                    <tr>
                                        <td width="49%" valign="bottom">
                                            <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
                                                <tbody>
                                                    <tr>
                                                        <td height="100" valign="top" class="login_text">
                                                            <div align="left">
                                                                网站后台管理系统
                                                            </div>
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td>
                                                            <div align="right">
                                                                <img src="./网站管理后台登录_files/login_img.jpg" width="104" height="113">
                                                            </div>
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                        </td>
                                        <td width="2%">
                                            <img src="./网站管理后台登录_files/login_line.jpg" width="6" height="287"></td>
                                        <td width="49%">
                                            <div align="right">
                                                <table width="223" border="0" cellspacing="0" cellpadding="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                                <img src="./网站管理后台登录_files/login_tit.jpg" width="223" height="30"></td>
                                                        </tr>
                                                        <tr>
                                                            <td>
                                                                <table width="100%" border="0" cellspacing="10" cellpadding="0">
                                                                    <tbody>
                                                                        <tr>
                                                                            <td width="28%">
                                                                                <div align="left">用户名:</div>
                                                                            </td>
                                                                            <td width="72%">
                                                                                <div align="left">
                                                                                    <span class="style1">
                                                                                        <input name="txtClientID" type="text" id="txtClientID" value="<%=userInfo.UserId %>" class="form2" style="height: 15px; width: 140px;">
                                                                                    </span>
                                                                                </div>
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td>
                                                                                <div align="left">密&nbsp;码:</div>
                                                                            </td>
                                                                            <td>
                                                                                <div align="left">
                                                                                    <span class="style1">
                                                                                        <input name="txtPassword" type="password" id="txtPassword" value="<%=userInfo.UserPwd %>"  class="form2" style="height: 15px; width: 140px;"></span>
                                                                                </div>
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td>
                                                                                <div align="left">验证码:</div>
                                                                            </td>
                                                                            <td>
                                                                                <div align="left">
                                                                                    <img id="Image1" src="./网站管理后台登录_files/ValidateCode.ashx?1" style="border-width: 0px;">&nbsp;
                            <a href="#" id="changeCode">换一张</a>
                                                                                </div>
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td>
                                                                                <div align="left">验证码:</div>
                                                                            </td>
                                                                            <td>
                                                                                <div align="left">
                                                                                    <span class="style1">
                                                                                        <input name="txtCode" type="text" size="8" id="txtCode" class="form2" style="height: 15px;"></span>
                                                                                </div>
                                                                            </td>

                                                                        </tr>
                                                                        <tr>
                                                                            <td>
                                                                                <div align="left">
                                                                                    <input type="checkbox" id="Forget" name="Forget" />退出 </div>
                                                                            </td>
                                                                            <td>
                                                                                <div align="left">
                                                                                    <input type="checkbox" id="Remember" name="Remember" />记住我1周</div>

                                                                            </td>
                                                                        </tr>
                                                                    </tbody>
                                                                </table>
                                                            </td>
                                                        </tr>
                                                        <tr>
                                                            <td align="center">
                                                                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                                                    <tbody>
                                                                        <tr>
                                                                            <td>
                                                                                <div align="center"><a href="http://www.800kb.com/ClientManager/#"></a></div>
                                                                            </td>
                                                                            <td>
                                                                                <div align="center">

                                                                                    <input type="image" name="btnLogin" id="btnLogin" src="./网站管理后台登录_files/login_menu2.jpg" style="border-width: 0px;"><a href="Login.aspx.cs"></a>
                                                                                </div>
                                                                            </td>
                                                                        </tr>
                                                                    </tbody>
                                                                </table>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                            </div>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                        </td>
                        <td width="23">
                            <img src="./网站管理后台登录_files/login_rigbg.jpg" width="23" height="287"></td>
                    </tr>
                </tbody>
            </table>
        </div>
    </form>

</body>
</html>

aspx

时间: 2024-11-07 06:03:33

步步为营-76-用户登录(Session+Cookie)的相关文章

onethink中的用户登录session签名

用户登录签名问题,即防止伪造登录session,增加一个用户登录数组的加密签名 onethink的登录控制,先调用UC表中(UC表也是存储在网站或本地的数据库中的),确认登录信息.如果UC表登录成功,则判断用户表(member),传入的是用户的uid,session记录uid,username,last_login_time这三个字段构成的数组.session标识为:user_auth 接着session记录调用公共函数data_auth_sign签名后的数组session标识为:user_au

requests保持登录session ,cookie 和 token

一.request提供了一个一个叫做session的类,来实现客户端和服务端的会话保持 # coding:utf-8 import requests url = "https://passport.cnblogs.com/user/signin" headers = { 头部信息已省略 } payload = {"input1":"xxx", "input2":"xxx", "remember&q

DedeCMS---V5.7_UTF8_SP1、SP2---任意前台用户登录(cookie伪造)

漏洞触发点在include/memberlogin.class.php中的MemberLogin类中的登录校验函数 //php5构造函数 function __construct($kptime = -1, $cache=FALSE) { global $dsql; if($kptime==-1){ $this->M_KeepTime = 3600 * 24 * 7; }else{ $this->M_KeepTime = $kptime; } $formcache = FALSE; $this

Android 通过httpclient请求web服务器,并解决用户登录session保持

package com.rainet.tiis.network; import java.util.Iterator;import java.util.List;import java.util.Map; import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.CookieStore;import org.apache.http.client.Ht

原创:PHP利用session,实现用户登录后回到点击的页面(本文以TP为例)

1.以下内容纯属原创,请谨慎选择: ①目的:用户登录超时,session过期,点击后跳转到登录页,登录成功再跳转到鼠标点击的页面. ②流程:用户登录---session过期---点击跳转到登录页---再次登录成功---跳转回点击的页面 ③思路:利用TP自带session默认开启,只要我们的url有变化,那么久将变化的url存入[同名]的session变量中: 用户登录过期,session失效,点击任意url,将该url重新存入session变量中,再次登录成功,redirect到该url即可 ④

session,cookie 详解

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session. 1.1  Cookie机制 在程序中,会话跟踪是很重要的事情.理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个

Asp.Net使用加密cookie代替session验证用户登录状态 源码分享

首先 session 和 cache 拥有各自的优势而存在.  他们的优劣就不在这里讨论了. 本实例仅存储用户id于用户名,对于多级权限的架构,可以自行修改增加权限字段   本实例采用vs2010编写,vb和c#的代码都是经过测试的:一些童鞋说代码有问题的 注意下    什么? 你还在用vs2008 vs2005? 请自行重载 带有 optional 标致的函数   童鞋们提到的 密码修改后 要失效的问题 当时没有想到 个人认为 大致方向可以> >1. 每个用户生成1个xml 里面保存随机的几

关于django用户登录认证中的cookie和session

最近弄django的时候在用户登录这一块遇到了困难,网上的资料也都不完整或者存在缺陷. 写这篇文章的主要目的是对一些刚学django的新手朋友提供一些帮助.前提是你对django中的session和cookie已经有了一定的了解. 我最基本的设想是当用户登陆了网站后,用户访问本网站的其他网页时依旧能识别其身份. 很多教程的方法是在用户的cookie中存储用户名,这种方法当然是非常不安全的. 其实只要我们使用了django中的session,django就会自动在用户的cookie中存储 sess

基于session的用户登录识别

框架express 依赖的session模块express-session 1 主页面app.js var express = require('express'); var path = require('path'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require