在 MobiLink 脚本中,验证参数是命名参数,其前缀为字母 a,例如 {ml a.1}。这些参数必须是从 1 开始的数字,且限制在 255 之内。其值从 MobiLink 客户端发出。
在 authenticate_* 脚本中使用时,验证参数会传递验证信息。
可在所有其它事件(begin_connection 和 end_connection 除外)中使用验证参数传递来自 MobiLink 客户端的信息。在通过创建和填充表格完成某操作时,此技术将是一个非常便捷的方法。
在 SQL Anywhere 远程数据库上,利用 dbmlsync -ap 选项传递信息。在 UltraLite 远程数据库上,利用 auth_parms 和 num_auth_parms 传递信息。
对于 UltraLite 远程数据库,请使用 ul_synch_info 结构中的 num_auth_parms 和 auth_parms 字段传递参数。num_auth_parms 是参数数目的计数(0 至 255),auth_parms 是指向字符串数组的指针。为防止以纯文本格式查看这些字符串,它们与口令采用相同的方式进行发送。如果 num_auth_parms 为 0,请将 auth_parms 设置为空。以下是在 UltraLite 中传递参数的一个示例:
ul_char * Params[ 3 ] = { UL_TEXT( "param1" ), UL_TEXT( "param2" ), UL_TEXT( "param3" ) }; ... info.num_auth_parms = 3; info.auth_parms = Params; |
对于 SQL Anywhere 远程数据库,请使用 dbmlsync -ap 选项,通过逗号分隔的列表传递验证参数。例如,以下命令行传递三个参数:
dbmlsync -ap "param1,param2,param3" |
在服务器上,按脚本的发送顺序对其进行引用。在此示例中,authenticate_parameters 脚本可以为:
CALL my_auth_parm ( {ml s.authentication_status}, {ml s.remote_id}, {ml s.username}, {ml a.1}, {ml a.2}, {ml a.3} ) |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |