WebOffice入门教程五:智能窗Session值共享教程
教程概述
由于采用智能窗方式浏览控件,这与普通浏览器直接内㠌显示控件方式不同,智能窗的弹出与原浏览器是分别不同的两个程序,两者之前的Session值默认情况是不能共享的,即用户在普通浏览器上通过帐号和密码登陆系统时产生的Session值,在智能窗里是无法直接获得的,这时智能窗打开的网页又会显示重新登陆的界面,为解决此问题,比较常用的方法是采用URL Token的解决方案。
WebOffice使用URL TOKEN解决方案一
1.记录登陆时的信息并加密
当用户登陆系统时,记下用户的帐号名称和登陆时间存入数据库两个字段,关将帐号名和登陆时间统一成字符串后进行MD5加密产生一个密码串 并根据需要把要用的SESSIN值存入数据库相应字段里。
2.通过URL传递加密数据
在打开智能窗时把账号名和MD5加密串分别用URL参数如 http://www.aa.com/aa.jsp?fileid=1&user=账号名&token=MD5加密串, 进行传递
3.加密数据比对
在aa.jsp通过获得的账号名,找到库里存储的此账号最近一次登陆的时间,通过前面登陆时使用的加密算法对账号和从库里取出的时间进行MD5加密,得出一个新的加密字符串,如果此加密字符串与网址里 aa.jsp?fileid=1&user=账号名&token=MD5加密串 里token参数的值一至,则一定是同一个人操作,接下来再到库中把对应的SESSION值读取出来就可以了。
验证通过!
示例下载
WebOffice使用URL TOKEN解决方案二
通过控件内置的HttpSetHeader方法将要传递的TOKEN放到头信息里,具体用法如下:
语法:HttpSetHeader("Authorization",Token)
示例:WebOffice.HttpSetHeader("Authorization","eySowLIjs2lxaowwawrqwryiomcPasx.asdf290uie");
此方法在调用HTTPPOST方法保存数据前调用,将会修改控件上传文件时的头信息,具体代码示例如下:
var strSaveUrl="http://服务器路径/postsave.jsp";//修改为接收器的实际地址
var WebOffice = document.getElementById('WebOffice');//获得控件对象
WebOffice.HttpInit();
WebOffice.HttpAddPostCurrFile("docfile","");//控件读取本地编辑的OFFICE文档
WebOffice.HttpSetHeader("Authorization","eySowLIjs2lxaowwawrqwryiomcPasx.asdf290uie");//设置头信息
var strResults=WebOffice.HttpPost(strSaveUrl);
//strResults 获得服务器端脚本运行后的返回值