• webform中Session和Cookie对象的用法


    (一)Session

           跟Cookies一样用来存储用户数据

    1、Session、Cookies对比

    相同点:每一台电脑访问服务器,都会是独立的一套session或者Cookies,key值都一样,但是内容都是不一样的。

    不同点:●Session的保存位置是保存在服务器内存上,Cookies保存在用户硬盘上

               ●Session没有持久的,在不对页面进行任何操作的情况下,它的保存周期就是20分钟;Cookies可以持久也可不持久,取决于用户

    2、Session重点

    Session不要滥用,也不要不用,滥用可能会造成服务器内容溢出,不用会造成资源浪费,因为内存中的数据提取及交互是最快的

    3、用法

    赋值:Session["key"] = 值;

    取值:string a = Session["key"];

    清除: Session["key"]=null;

    注意:
    
      1、不要存大量数据在Session里
    
      2、临时Session取完无用后记得 = null清空它
    
     
    
    //赋值
    string s = TextBox1.Text;
    Session["aa"] = s;
    //取值
    if(Session["aa"]!=null)
        Label1.Text=Session["aa"].tostring();

    (二)cookies

    简单摘要:    

           在用户电脑的硬盘上保存的一段文本

           http协议包括浏览器,允许站点在用户电脑上以Cookies的形式来临时保存数据

           如果没有设置保存时间,即会话cookies时:

    1、如果你20分钟内没有再次刷新页面,那么此cookies就会自动删除掉

    2、当前访问连接中断,如关闭浏览器,那么cookies会自动删除

            如果设置保存时间,到时间后,cookies会自动删除 

           当然,cookies的保存与否,关键在用户,用户可以手动清楚cookie。

           作用:保持用户的登陆状态

    用法:

    1、获取账号:Response.Cookies["user"].Value = TextBox1.Text;

    2、给该账号设置登录保持的过期时间:Response.Cookies["user"].Expires = DateTime.Now.AddDays(7);

    3、清除cookies:Response.Cookies["user"].Expires = DateTime.Now.AddDays(-5); 只要让数值为负即可,表示已过期几天

    //赋值
    string s = TextBox1.Text;
    Response.Cookies["username"].Value = s;
    if (CheckBox1.Checked)
                {
                    Response.Cookies["username"].Expires =DateTime.Now.AddDays(3);//设置Cookie的过期时间
                }
    //取值
    if (Request.Cookies["username"] != null)
                Label1.Text = Request.Cookies["username"].Value;
    
    Cookie

    Server.Transfer("Default2.aspx);使用此方法,可以在不变动地址栏显示的地址的情况下跳转页面(比如一定要用地址栏传址但又不想让用户看到所传变量时)

    建立登录Login页面:

    前台代码:

    复制代码
    <form id="form1" runat="server">
        用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
            密码:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
            <asp:CheckBox ID="CheckBox1" runat="server" /><label for="CheckBox1">记住登陆状态7天</label><br />
    
            <asp:Button ID="Button1" runat="server" Text="登陆" />
        </form>
    复制代码

    后台代码:

    复制代码
    protected void Page_Load(object sender, EventArgs e)
        {
            Button1.Click += Button1_Click;
        }
    
        void Button1_Click(object sender, EventArgs e)
        {
            //取值,数据库查询
            bool ok = new UsersDA().Select(TextBox1.Text, TextBox2.Text);
            if (ok)
            {
                //若查到数据,即可以登陆成功
                Response.Cookies["user"].Value = TextBox1.Text;
    
                if (CheckBox1.Checked)
                {
                    //给cookies设置保存时间
                    Response.Cookies["user"].Expires = DateTime.Now.AddDays(7);
                }
                Response.Redirect("Main.aspx");
            }
    复制代码

    主界面Main后台代码:

    复制代码
     //判断,cookies是否为空,不为空,根据cookies传的值查询
            if (Request.Cookies["user"] != null)
            {
                Users u = new UsersDA().Select(Request.Cookies["user"].Value);
    
                Labdl.Text = u.NickName;
                Literal1.Text = ",欢迎你!";
            }
            //为空,跳转登录页面
            else
            {
                Response.Redirect("Login.aspx");
            }
    复制代码


    有登陆就有退出登录:

    Main主界面退出登录前台代码:

    <asp:Button ID="Btntc" runat="server" Text="退出登陆" />

    后台代码(清除cookies):

    复制代码
    void Btntc_Click(object sender, EventArgs e)
        {
            //1清除cookies
            Response.Cookies["user"].Expires = DateTime.Now.AddDays(-5);
            //2刷新页面/跳到登陆页面
            Response.Redirect("Login.aspx");
        }
  • 相关阅读:
    基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体基础
    用SignalR和Layui搭建自己的web聊天网站
    MySQL查看、修改字符集及Collation
    ASP.NET MVC中有四种过滤器类型
    一个简单的大转盘抽奖程序(附.NetCore Demo源码)
    网站统计中的访问信息收集的前端实现
    微信小程序实现按首字母检索城市列表
    微信小程序异步处理
    微信小程序下拉框
    node.js上传文件
  • 原文地址:https://www.cnblogs.com/1030351096zzz/p/6245171.html
Copyright © 2020-2023  润新知