• Webform Session Cookies状态保持


    Request对象的五个集合

    ①、QueryString:用以获取客户端附在url地址后的查询字符串中的信息。

    例如:stra=Request.QueryString ["strUserld"]
     前台传递写法:地址 ?key=value&key=value
    注意事项:●不需要保密的东西可以传,在地址栏中是可见的,可更改的。
                  ●不要传过长东西,因为长度有限,过长会造成数据丢失。
    ②、Form:用以获取客户端在FORM表单中所输入的信息。(表单的method属性值需要为POST)
     例如:stra=Request.Form["strUserld"]
    ③、Cookies:用以获取客户端的Cookie信息。
     例如:stra=Request.Cookies["strUserld"]
    ④、ServerVariables:用以获取客户端发出的HTTP请求信息中的头信息及服务器端环境变量信息。
     例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客户端IP地址
    ⑤、ClientCertificate:用以获取客户端的身份验证信息
    例如:stra=Request.ClientCertificate["VALIDFORM"],对于要求安全验证的网站,返回有效起始日期

    Session - 全局变量组
    存放位置:服务器上

    作用:只要里面有内容,那么这个网站中所有的C#端都能访问到这个变量

    优点:安全,速度快,全局访问无限制

    缺点:消耗服务器内存资源

    Session生命周期:20分钟

    介绍:

    注意:1、不要存大量数据在Session里
    2、临时Session取完无用后记得 = null清空它

    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); 只要让数值为负即可,表示已过期几天

    登录状态保持实例

    建立登录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>
    View Code

    后台代码:

    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");
            }
    View Code

    主界面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");
            }
    View Code

    有登陆就有退出登录:

    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");
        }
    View Code
  • 相关阅读:
    博弈论基础与习题(未完)
    三视图求最多方块数
    二维前缀和应用
    卡特兰数
    UVa 11806 Cheerleaders(容斥定理)
    逃出升天
    求排列的逆序数
    求2进制下1的个数
    字符串哈希基础与应用
    网络流基础与应用
  • 原文地址:https://www.cnblogs.com/shadow-wolf/p/6244998.html
Copyright © 2020-2023  润新知