zoukankan      html  css  js  c++  java
  • Session和Cookie的使用总结

    SessionCookie的使用总结:

    Session和cookie都是asp.Net中的内置对象,至于他们有什么区别,在这里就不在多说,现在来说说一些比较实用点的东西:

    我们知道网站都有一个后台管理系统,其中有登录和退出两个功能,在登录的时候我们往往会把用户的信息保存到session或者cookie中,以便后面使用,那么在登录的时候我们要注意哪些呢?

    1、把一些敏感的东西存到session中,不太敏感的东西可以存在session或者Cookie中,比如用户名就是不太敏感,但是介于有些浏览器不支持cookie的使用,所以我们会把它存到session中,但是session有的时候在服务器中容易丢失,所以我们可以结合cookie一起使用,就是说当session的丢失的时候,如果cookie还在我们设定的有效期内,就可以再一次从Cookie中取出值放进session里,所以我们最好同时用session和cookie保存用户名等信息

    或者在配置文件里

    <sessionState timeout="2"  mode="StateServer" />

    来解决session丢失的问题也可以

    2、我们希望后台管理在多长时间没有操作的情况下,让session失效,重新登录,可以使用session.timeout=5,以分钟为单位,表示5分钟之内没有其他操作,就失效,或者在配置文件中配置<sessionState timeout="5"  mode="InProc" />也可以

    3、cookie有效期的设置

    httpCookie.Expires = DateTime.Now.AddMinutes(2);

    cookie的有效期为2分钟

    4、页面中判断是否有权限访问该网页的时候,可以如下判断:

    if (Request.Cookies["httpCookie"] != null)

    {

    Session["admin"] = Request.Cookies["httpCookie"].Values["admin"].ToString();

    }

    if (Session["admin"] == null)

    {

    this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('请重新登                        录');location.href='logins.aspx'</script>");

    }

    下面在来说说退出的时候该怎么做比较好

    1、  退出的时候session和Cookie的值都要清空,现在来简单说说session的几个方法的区别:

    Session.clear():表示将会话中所有的session的键值都清空,但是session还是依然存在,同等于Session.RemoveAll()

    Session[“admin”]=null:表示将制定的键的值清空,并释放掉,和session[“admin”]=””不一样,它清空了,但是session不释放,同等于session.Remove(“name”);

    Session.Abandon()就是把当前Session对象删除了,下一次就是新的Session了。

    主要的不同之处在于当使用Session.Abandon时,会调用Session_End方法(InProc模式下)。当下一个请求到来时将激发Session_Start方法。而Session.Clear只是清除Session中的所有数据并不会中止该

    Session,因此也不会调用那些方法,Abandon方法用于主动结束会话,若没有调用该方法,当会话超时后,也会自动结束当前会话。

    2、  下面在来看看如何清除cookie

    A、tpCookie cookie = System.Web.HttpContext.Current.Request.Cookies.Get("tuser");

    cookie.Expires = DateTime.Now.AddDays(-1);

    System.Web.HttpContext.Current.Response.Cookies.Add(cookie);

    B、tpCookie httpCookie = Request.Cookies["httpCookie"];

    httpCookie.Expires = DateTime.Now.AddDays(-1);

    Response.Cookies.Add(httpCookie);

    AB两种方法都可以

    3、  所以session清除当前的值就可以了即Session[“admin’]=null就可以了,Cookie按照以上方法清除即可

    建议和意见:

    1、  在退出的时候我们可以在创建一个logout的页面来写时间,这样比较好一些

    2、  无论在进行什么操作的时候,能用If判断是否为空的情况下就尽量的判断,防止出现了空指针异常

  • 相关阅读:
    控制台内容保存为文件
    SpringBoot
    JAVA基础
    jenkins的.gradle目录结构说明和清理
    macos 签名+公证app生成dmg后,安装使用过程中崩溃
    MacOS命令行打包+签名+公证+生成dmg文件
    jenkins构建调用tar报错:tar: Failed to set default locale
    jenkins构建报错:appdmg: command not found
    jenkins 构建xcode-select -s 切换xcode版本失败 (切换xcode路径无效)
    jenkins 执行shell编译go 代码报错:build cache is required, but could not be located: GOCACHE is not defined and neither $XDG_CACHE_HOME nor $HOME are defined
  • 原文地址:https://www.cnblogs.com/qiushuixizhao/p/5139609.html
Copyright © 2011-2022 走看看