Domino DsApi实例浅析
Domino DsApi是给用户使用c开发domino服务器的额外扩展功能的程序接口。之前我的两篇文章介绍了如何在domino中使用国产加密算法sm4和如何在domino web登录页中加上图形验证码;其中dsapi,都在实现这两个功能的程序中起了核心作用。
Dsapi的程序文件需要拷贝到服务器的程序文件目录中,并且在服务器的dsapi配置中配置对应的程序文件名
服务器在启动的过程中会自动加载此接口程序。
下面讲讲dsapi的程序结构。我们以windows环境为例。
由于dsapi程序必须是动态链接库,以便于服务器进行加载。所以在程序的首先要加入动态库程序入口,windows程序的入口函数就是DllMain函数。记得在使用vs开发工具创建工程时也要选用动态链接库的工程。
FilterInit函数是核心函数
Domino系统在加载时会回调此接口函数。由于我们是要在Http登录请求中调用验证程序,实现验证逻辑。所以,接下来就要在HttpFilterProc函数中捕获登录验证的请求入口。
kFileterAuthenticate事件是web登录验证的入口事件,根据返回的结果是TRUE或者FALSE来判断是否登录成功,可以进入系统。在自定义的Authenticate函数中实现登录验证的程序逻辑。
其中context对象指针包含了登录页面中所有的post和get请求信息,authData指针对象包含了登录用户名和登录密码等信息,这些在后续程序中都会用到。通过返回值在觉得是否可以验证通过。