一般设置都是只有通过验证后才用session来保存登陆状态
还有session的保存取决于客户端是否开启了cookie.
如果客户端禁止了cookie.那session没用的。
至于你说的服务器的保存session
是不是说的过期时间?
可以用session.timeout=5
来设置
后面的数值以分钟为单位.默认是20
aspnet中,session默认以inproc模式存储,也就是保存在iis进程中,这样有个优点就是效率高,但不利于为本负载均衡扩展。可以把session信息保存在sqlserver中,据说,该种方式比起inproc性能损失为10%-20%。如何实现呢,主要分两步介绍:
1、初始化sql
server中的状态数据库
asp.net
sql
server
提供注册工具aspnet_regsql.exe,用于创建供
asp.net
中的
sql
server
提供程序使用的
microsoft
sql
server
数据库。aspnet_regsql.exe位于
/%windir%/microsoft.net/framework/
/aspnet_regsql.exe
目录下。如果麻烦,可以
直接用visual
studio
tools
的命令提示工具中直接输入aspnet_regsql.exe使用。用法如下:
aspnet_regsql.exe
可以用如下的语法来添加默认session数据库aspstate
aspnet_regsql.exe
-s
localhost
-u
sa
-p
why1234?
-ssadd
-sstype
p
-s,-u/-p
必须是大写,分别表示数据库服务器,用户名和密码。
-ssadd
/
–ssremove
参数:
-ssadd表示是添加session数据库,
-ssremove表示移除session数据库.
创建自定义数据库myappstate,可以用如下的语法:
aspnet_regsql.exe
-s
localhost
-u
sa
-p
why1234?
-ssadd
-sstype
c
-d
myappstate
2、配置webconfig
在webconfig的
节下添加如下配置:
如果在初始化数据库的时候,创建了自定义数据库可以用类似于如下的的配置:
通过以上两步的设置,已经可以了。详细情况请参阅msdn。
建立数据库和数据库的表结构,我们可以采用php可以使用的任何的数据库,因为php和mysql的结合最好,我就使用mysql来做事例,当然根据你的需要可以改称别的数据库,同时因为mysql没有事物的功能,这也比别的数据库更快,然而保存session 书、一 不许要事物处理的,再者里我决的更好。创建数据库:
复制代码 代码如下:CREATE DATABASE 'session'创建表结构 CREATE TABLE 'session'( id CHAR(30) NOT NULL , 'user 'CHAR(30), data CHAR(3000) ,PARMIRY BY ('id') )
下面我们来编写保存session的文件session_start.php
复制代码 代码如下:<?php
$con =mysql_connection("127.0.0.1","user" , "pass")
mysql_select_db("session")
function open($save_path, $session_name){return(true)}function close(){return(true)}function read($id){if($result = mysql_query("SELECT * FROM session WHERE id='$id'")){if($row = mysql_felth_row($result ))
{ return $row["data"]}}else{return ""}}function write($id, $sess_data){if($result = mysql_query("UPDATE session SET data='$sess_data' WHERE id='$id'")){return true}else{return false}}function destroy($id){if($result = mysql_query("DELETE * FROM session WHERE id='$id'")){return true}else{return false}}/*********************************************
* WARNING - You will need to implement some *
* sort of garbage collection routine here. *
*********************************************/
function gc($maxlifetime){return true}session_set_save_handler("open", "close", "read", "write", "destroy", "gc")
session_start()
// proceed to use sessions normally?>现在我们的工作就已经完成了,只要你在需要在使用session的时候,把session_user_start.php。包含进来,
注意,这个文件一定要在文件的第一行包含,然后就想使用文件的session一样的方法使用旧可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)