dsapi 中文乱码.
最近我在做DSAPI时发现如下问题:参考文章:
http://www.ibm.com/developerworks/cn/lotus/ls-dsapi/
发现dsapi不少bug。
1 乱码问题:
strncpy ((char *)authData->authName, authData->userName,
authData->authNameSize);
如果authData->userName为中文,就会authData->authName 出现乱码,
通过@username可以获取authData->authName该值是乱码,
这个值是实际授权的用户,在实际的业务中,@username是个很重要的信息。
乱码是个很大的问题,不知各位高人如何解决.
2
if (strcmp (authData->password, password) == 0)
/* 口令验证成功 */
authData->authType = kAuthenticBasic;
else
/* 口令验证失败 */
authData->authType = kNotAuthentic;
return kFilterHandledEvent;
dsapi 官方文档说如果dsapi认证不成功,也不想domino自身或者用其他的dsapi
进行认证,就用
authData->authType = kNotAuthentic;
return kFilterHandledEvent;
但是实际上会出现找不到页面的错误。
当然还有其他很多问题:
比如get登陆方式。无法获取authData->userName.
return kFilterNotHandled; 会导致domino再次进行认证,比如一个用户dsapi验证没有通过(get或者post方式登陆),但是这个用户名和密码在names.nsf(是domino系统的正式用户)中,就能登陆系统,从而跳过dsapi.
get登陆方式比如:http://server/test.nsf/tmpform&username=admin&password=123456789
或者
http://server/test.nsf/tmpform?openform&login&username=admin&password=123456789
各位高手就第一个乱码问题给与帮助。
开发测试环境是:
windows2003(中文)+domino6.53(中文)+notes api6.5(英文)+vc6.0
和
windows2000(中文)+domino6.53(英文)+notes api6.5(英文)+vc6.0
两者结果都是一样,都有authData->userName负值为中文时,出现乱码。
--------------------编程问答-------------------- 解决方法,已找到,揭帖。 --------------------编程问答-------------------- 怎么解决的,说说看 --------------------编程问答-------------------- 分享一下?
--------------------编程问答-------------------- 请问怎么解决超时问题.如果用dsapi认证的话,用户登陆很快会超时. --------------------编程问答-------------------- how to settle it? --------------------编程问答-------------------- 可否把你做的DSAPI代码发给偶看看,偶最近也在做DSAPI的认证
ch_hg@163.com
先谢了 --------------------编程问答-------------------- 能否说说怎么解决的?我也遇到乱码的问题,或者把所做的代码发到我邮箱602128171@qq.com,感激不尽! --------------------编程问答-------------------- 乱码问题的解决方法可否共享一下,390883435@qq.com
补充:企业软件 , Lotus