启动插件校验机制实现免登录功能-支持云之家集成与JSON参数集成(第三篇)
在第二篇(A)的基础上,我们进行了功能延伸,实现三个扩展:(2018-04-12最新功能包)
1、用户集成参数实现V2版本,支持JSON参数集成;
2、云之家轻应用直接打开金蝶云功能;
3、云之家集成与简单通行证集成方法都作为金蝶云系统出厂功能默认运行;
金蝶云统一认证--校验UD参数处理逻辑示意图
(金蝶云统一认证--校验UD参数处理逻辑示意图)
1、集成用户参数V2.0版本格式,支持JSON参数集成;
1.1、使用实例:
http://xxx.xxx.xxx.xxx/k3cloud/html5/index.aspx?ud={dbid:'5ab1f8916d8741',username:'Demo',appid:'hr',signeddata:'151a2724d91cb756fa59b257e0896bcd161436a8',timestamp:'1522639013',
lcid:'2052',usertoken:'',formid:'PUR_PurchaseOrder',pkid:'10001',formtype:'list',otherargs:'|hello',origintype:'SimPas',entryrole:'HTML5'}
(注意:ud参数也支持进行utf8转换后转为base64字符串形式进行传递)
1.2、协议内容解析(演示例子中的参数协议,具体实际应用可以自定义,但基本参数不能缺少):
【参数格式】:ud={dbid:'xxx',username:'xx',appid:'xx',signeddata:'xxx',timestamp:'1522639013',
lcid:'2052',usertoken:'',formid:'PUR_PurchaseOrder',pkid:'10001',formtype:'bill',otherargs:'|hello',origintype:'SimPas',entryrole:'HTML5'}
【参数说明】:
dbid:数据中心的ID;
username:用户名称;
appid:应用程序ID,通过Administrator登录数据中心后,在【系统管理】分类的【第三方系统登录授权】功能里面进行新增维护;(云之家可以不填由querystring参数决定)
signeddata:参考文章https://vip.kingdee.com/article/8927
timestamp:登录时间戳(Unix时间戳,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数);
lcid(可选):语言ID,中文2052(默认),英文1033,繁体3076;
origintype: XT=云之家集成(同时要求entryrole=XT);SimPas=简单通行证集成;
entryrole:验证权限的入口角se;
formid: 登录后默认打开功能的表单id;
formtype:登录后默认打开功能的格式,目前有单据bill和列表list两种方式,没有列表的功能统一为bill;
pkid:formid对应表单的主键;formtype为list时忽略,formtype为bill时起作用,如果为空表示新增状态;
otherargs:作为用户自定义参数传入,使用于二开,具体内容和格式由二开人员确定,最终在指定表单的插件中通过GetCustomParameter(FormConst.StartAppArgs)获取,具体参考https://vip.kingdee.com/article/1168
特别注意:由于仅仅通过URL进行传递参数,不能传递太多数据,建议预先通过WebApi存储数据到服务器,然后仅传递该数据的唯一索引即可,在具体单据业务插件中通过该唯一索引提取数据即可。
2、云之家轻应用直接打开金蝶云功能;
2.1、使用实例:http://xxx.xxx.xxx.xxx/k3cloud/html5/index.aspx?ud={"dbid":"xxxx","entryrole":"XT","lcid":2052,"origintype":"XT","formid":"PUR_PurchaseOrder","formtype":"bill","pkid":""}
(注意:ud参数也支持进行utf8转换后转为base64字符串形式进行传递)
2.2、协议内容解析(演示例子中的参数协议,具体实际应用可以自定义,但基本参数不能缺少):
【参数格式】:ud={"dbid":"xxxx","entryrole":"XT","lcid":2052,"origintype":"XT","formid":"PUR_PurchaseOrder","formtype":"bill","pkid":""}
【参数说明】:
dbid:数据中心的ID;
entryrole:验证权限的入口角se;
lcid(可选):语言ID,中文2052(默认),英文1033,繁体3076;
origintype: XT=云之家集成(同时要求entryrole=XT);SimPas=简单通行证集成;
formid: 登录后默认打开功能的表单id;
formtype:登录后默认打开功能的格式,目前有单据bill和列表list两种方式,没有列表的功能统一为bill;
pkid:formid对应表单的主键;formtype为list时忽略,formtype为bill时起作用,如果为空表示新增状态;
otherargs:作为用户自定义参数传入,使用于二开,具体内容和格式由二开人员确定,最终在指定表单的插件中通过GetCustomParameter(FormConst.StartAppArgs)获取,具体参考https://vip.kingdee.com/article/1168
特别注意:由于仅仅通过URL进行传递参数,不能传递太多数据,建议预先通过WebApi存储数据到服务器,然后仅传递该数据的唯一索引即可,在具体单据业务插件中通过该唯一索引提取数据即可。
3、云之家集成与简单通行证集成方法都作为金蝶云系统出厂功能默认运行;
3.1、在common.config中配置启用启动校验逻辑;
3.2、修改配置文件应用服务器的站点目录WebSite/App_Data/Common.config,在appsettings节点下增加如下项目:
<!--启动服务插件-->
< add key ="StartAppPlugin" value="Default" />
3.3、如果已经做了第三方启动插件的客户,可以在第三方插件校验完成返回时,设置返回对象StartAppResult.Cancel=false,实现默认的V2协议校验和云之家启动校验,
如果第三方校验成功,设置StartAppResult.Cancel=true来终止默认校验;
推荐阅读