Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26869
  • 博文数量: 6
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 75
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-11 17:50
文章分类

全部博文(6)

文章存档

2011年(1)

2010年(1)

2009年(4)

我的朋友
最近访客

分类: 嵌入式

2009-12-19 21:34:26

基于Goahead的嵌入式web开发
 
 
最近在做一个嵌入式的web,主要是用来远程控制和管理设备的参数。网上关于这方面的信息很少,goahead的文档也少。现在总结一下goahead的一些基本行为特点,以供后来者参考。对以移植之类的就不说了,网上有几篇文章。
 

1. Goahead的特点

支持html,cgi,goform,内嵌的asp(文档说是embed javascript),部分asp语句。
goform文档说是memory cgi.说白了就是一个用来替代cgi 程序的函数,但是他与goahead服务器程序编译在一起,并需要通过websFormDefine()向服务器注册。
内嵌的asp是可以嵌入到网页中的函数,跟goform 一样也需要注册,通过websAspDefine()注册。
以上两个特性是我用的最多的。
websFormDefine(T("formFoo"),“formTest”);
void formTest(webs_t wp, char_t *path, char_t *query);
formTest是定义的函数,formFoo是调用时用的,一般是用来处理表单,
websAspDefine(T("aspFoo"),"aspTest");
int aspTest(int eid, webs_t wp, int argc, char_t **argv);
aspTest是定义的函数,aspFoo在网页中调用时用,
如 <% aspFoo(arg1,arg2 ...); %>  这一部分会在服务端解析出来,你可以通过他依据不同参数替换成不同的内容。
goahead并不完整地支持asp因此对一些 .asp网页可能有问题,需要对网页做一些修改。
 

2 . goahead的用户管理

他的用户管理依靠一个用户管理文件,默认是umconfig.txt。定义USER_MANAGEMENT_SUPPORT宏并配置好这个文件基本就可以了。
umconfig.txt中有用户信息表,用户组信息表,网页访问限制表三个部分。
某个网页需要通过用户限制访问就需要将网页的uri定义在访问的限制表中。没有限制就可以任意访问。
我表达能力不好,贴个文件一行行解释吧。
umconfig.txt 内容如下:
TABLE=users    用户信息表开始
ROW=0         这行不能少,一个用户信息 的开始
name=admin   用户名admin
password=Uz    我的密码123456
group=Administrator    属于Administrator用户组
prot=1   为1表示这个用户受保护不能被删除,0表示可以删除
disable=0    为0表示已经使能了,如果是1用户就禁止了
ROW=1
name=user
password=Uz
group=Guest
prot=0
disable=0
TABLE=groups     用户组信息表
ROW=0      开始一个用户组的信息
name=Administrator   用户组的名字
priv=4   用户组的访问权限,可以是0,1,2,4分别代表AM_NONE,AM_READ,AM_WRITE,AM_ADMIN.这之间没有权限大小之分。
method=3   密码认证方法,可以是0,1,2,3。0什么你都没权访问,1什么你都有权限。2密码与用户名简单加密传输,3密码和用户名经过更安全的加密。
prot=1   一样的用户组不能删除
disable=0   启用了
ROW=1
name=Guest
priv=1
method=3
prot=1
disable=0
TABLE=access
ROW=0
name=/home.htm  这个网页有认证的要求
method=3
secure=0
group=Guest    Guest用户组才能访问/home.htm网页,administrator用户组不能访问。特别说明:只有属于这个用户组的用户才能访问这个网页,其他一改不能访问。需要改变这个行为的需要自己改源代码。goahead先查找网页限制相关联的group的method属性,由他的group的method属性决定访问权限。如果没有定义group=Guest这一行就根据自身的method属性决定访问权限。
ROW=1
name=/player.htm
method=3
secure=0
group=Guest
ROW=2
name=/en/    对一个目录中所有内容(包括子目录中的内容)进行限制。注意后面一定要加‘/’字符。
method=3
secure=0
group=Administrator
ROW=3
name=/cn/
method=3
secure=0
group=Administrator
就这些吧,可能还有错误的地方。如果你发现了,请指正。
要了解goahead的行为还是需要认真分析原代码。
如有转载请指明作者和出处。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pan139com/archive/2009/05/21/4207278.aspx
阅读(1434) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~