请问各位高手我对c#中的session理解是否正确?

来源:百度知道 编辑:UC知道 时间:2024/06/19 03:48:38
session[]中的内容从登陆到关闭窗体结束程序的过程中是否一直不会改变?
如果是不同用户同时登陆,把登陆的用户名信息存在session中,是不是不同用户同时登陆,他们之间的session内容也不会影响呢?这种多用户同时操作,对用户的数量是不是有限制呢?
使用session时,是不是要添加命名空间或者实例化什么的,如何使用呢?

1. Http本身是无状态的但是很多业务需求是有保持状态的要求的,于是才有了Session。Session的开始和结束并不以业务上的输入用户名密码开始,也不以关闭浏览器而结束。Session是由IIS服务器来控制的。一般的说,当一个客户端连接到IIS后Session就已经被创建了,也就是说Session在执行业务上的登录操作前就已经存在了;IIS有若干种Session清除的策略,比较常见的是30分钟不操作则自动清除(不是二楼说的那种不管操作与否一律清除)。也就是说Session将会在客户端关闭浏览器并不再访问IIS的30分钟后被清除。在Session有效的那段时间里,Session的内容可以由程序进行修改。
2. Session与你业务系统中的“用户”没有关系,只与客户端机器有关系。一台客户端机器上面开若干个浏览器来访问IIS只会有一个Session,在这个Session中你可以选择保存你需要的信息。
3. 在aspx中Session的使用方法很简单,不需要实例化也不需要using:
如果name存在的话,Session["name"]="kadbbz";否则Session.Add("Name","kadbbz");

Session的使用不用添加任何的命名空间和文件.
直接Session["name"]=xx;
其中name是这个session的名称..xx可以是什么数据类型包括类对象..

session是浏览器状态对象..主要是保存浏览器的状态,这些可以自己编程保存,如保存用户的登陆信息等等..如果是多个用户也不会相互产生影响.因为这个是作用与浏览器的..你一个浏览器不可能登陆两个用户吧..

还有session有个作用时间限制..默认是30分钟,这个可以自己设定..主要是节省资源..因为一个用户老是保持在线的话对服务器是种负担..

这样也可以`

session[]是针对一次会话的,不同用户之间不会相互影响,对用户的数量没有限制,但是session有个失效时间,默认是20分钟(在配置文件可以改),引用session不需要引入其他命名空