你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 网络与通信
基于Ajax技术Web实时监控系统(七)
 

while(i < pLen) //遍历整个字符串

{  //如果是英文直接复制就可以

   if( *(pText + i) >= 0) {

       rst[j++] = pText[i++];

   }

   else{ //是汉字,进行UTF-8转换

WCHAR pbuffer;

::MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED, pText+i,2, &pbuffer,1);

UnicodeToUTF_8(buf,&pbuffer);

unsigned short int tmp = 0;

tmp = rst[j] = buf[0];

tmp = rst[j+1] = buf[1];

tmp = rst[j+2] = buf[2];

j += 3;

i += 2;

   }

}

(4) 权限控制

如果数据有权限要求,需要设计权限管理模块。系统需要根据用户的权限提供分级的设备数据,或者决定哪些用户具有控制设备参数的权限。用户通过浏览器登录,提供身份验证信息,如提供用户名、密码信息,然后Web服务器判断权限,回应用户浏览器一个惟一的会话ID,这个IDWeb服务器按照自己定义的规则生成,并标志这次会话的权限,而且,Web服务器在服务器端保存这个会话ID的状态。客户端也需要保持会话状态,客户端保持此次会话状态可以采用以下方法:

1cookie机制。在交互过程中浏览器可以自动地按照HTTP协议把这个标识发送给服务器。默认情况下它是一个会话级别的cookie,存储在浏览器的内存中,用户退出浏览器之后被删除。如果希望浏览器将该cookie存储在磁盘上,则需要使用maxAge设置失效时间,并给出一个以秒为单位的时间。将最大时效设为0,则是命令浏览器删除该cookie[2]

2URL重写。由于cookie可以被人为地禁止,所以经常使用这种技术,就是把session ID附加在URL路径的后面。对所有的URL使用URL重写,包括超链接,formaction和重定向的URL。每个引用你的站点的URL,以及那些返回给用户的URL(即使通过间接手段,比如服务器重定向中的Location字段)都要添加额外的信息。这种机制较为麻烦,每个页面都需要做成动态页面,可以使用JSP或者ASP实现。

3)表单隐藏字段技术。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session ID传递回服务器。只有每个页面都有表单提交而且动态生成时,才能使用这种方法。常规地点击<A HREF..>超文本链接并不产生表单提交,因此隐藏的表单域不能支持通常的会话跟踪,只能用于一系列特定的操作中,比如在线商店的结账过程。

会话级别cookie较为方便,所以在本系统中,使用会话级别cookie来实现权限认证,不过客户端浏览器需要允许cookie功能。Web服务端判断用户信息后设置客户端cookie,即一个唯一的session ID[5]session ID可以简单地使用自动递增的整形,如果需要更安全,则可以设计一定的算法来产生,让session ID难以被猜测。Web服务端同时建立会话权限表,设置这个session ID的产生时间,并根据用户信息设置此session ID对应的权限。客户浏览器访问时,Web服务器端通过搜索HTTP请求中“Cookie:”来获取此会话ID,并同自己保存的权限表进行比较,有权限则可以进行后面的操作,而且刷新服务端会话产生时间。服务器端有个会话有失效时间,假设为n分钟。如果客户端浏览器n分钟没有访问,权限表的此会话ID项会被销毁。权限表设计为三个字段如表1所示。
  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089