session与cookie用法

本文详细介绍了Cookie和Session的概念及用法,包括如何设置和获取Cookie,如何设置Cookie的过期时间,以及如何在MVC开发模式下使用Session。此外,还提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cookie的定义

 

Cookie是和站点相关的,并且每次向服务器请求的时候除了发送表单参数外,还会将和站点相关的所有Cookie都提交给服务器,是强制性的。

 

Cookie也是保存在浏览器端的,而且浏览器会在每次请求的时候都会把和这个站点的相关的Cookie提交到服务器,并且将服务端返回的Cookie更新回数据库,因此可以将信息保存在Cookie中,然后在服务器端读取、修改。服务器返回数据除了普通的html数据以外,还会返回修改的Cookie,浏览器把新拿到的Cookie值更新到本地浏Cookie。

Cookie的用法:

设置一个Cookie

Response.SetCookie(newHttpCookie("UserName",username));

 

获取一个Cookie

username=Request.Cookies["UserName"].Value;

 

可以通过设置属性Expires来设置Cookie的过期时间,如:

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

 

Cookie使用实践

 

用户名:

HttpCookie nameCookie = newHttpCookie("_base_0123456789_UserName", userName);

nameCookie.Expires = DateTime.Now.AddDays(14);

Response.SetCookie(nameCookie);

 

密码:

HttpCookie passCookie = newHttpCookie("_base_0123456789_PassWord", passWord);

passCookie.Expires =DateTime.Now.AddDays(14);

Response.SetCookie(passCookie);

 

清空Cookie:

Response.Cookies["_base_0123456789_PassWord"].Value= "";

Response.Cookies["_base_0123456789_UserName"].Value= "";

 

在MVC开发模式中,类默认继承了IRequiresSessionState,所以不需要用户再次继承就可以使用Session

Session的用法

Session(会话)有自动销毁机制,如果一段时间内浏览器没有和服务器发生任何的交互,则Session会定时销毁。这也就是为什么一段时间不操作,系统就会自动退出

 

向Session放入一个值

Session.Add("Name","Key");

 

取出Session中的一个值

string key =(string)Session["Name"];

 

通过web.config设置Session的过期时间

<system.web>

   <sessionState mode="InProc" timeout="30"/>

</system.web>

 

Session:

Session(“..”)中的..就好像变量名称,Session(“..”)=$$中的$$就是变量的值了。

你只需要写上句话,在这个用户的每个页面中都可以访问..变量中的值了。

 

在ASP.NET中用if(Session[ "UserName "]  ==   null) 来判断Session变量的存在,

 

不能用if(Session["UserName "]   ==   "")

或者if(Session["UserName "]   ==   " ") ,否则会报错!

 

谨记:在ASP.NET中要在客户端所有页面都使用Session[..]变量,

其一定要在protected void Page_Load(object sender, EventArgs e)定义,否则其他页面的相同Session[..]为null,即不存在。

如果Session[..]变量定义了就不为null,即使初始化为"",即Session[..]=“”;

   protected void Page_Load(object sender, EventArgs e)

    {

       if (!this.IsPostBack) 

       { 

           Session["accountMode"] = "studentID";   

           Session["studentID"] = "";            

           Session["identityNo"] = "";

       }

}

 

 

在ASP.NET中设置Session的过期时间修改web.config配置。  
    具体修改方法如下,在web.config中进行如下配置
    <system.web>
    <sessionState mode="InProc" timeout="30"/>
    </system.web>  

在这里指的是Session过期时间为30分钟。也就是说30分钟后如果当前用户没有操作,那么Session就会自动过期了。  

在调用Session的cs页中,Load事件里面写以下  Session.Timeout= 30;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值