电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

金蝶云星空二开支持动态密码校验功能

来源:金蝶云社区作者:金蝶2024-09-2336

金蝶云星空二开支持动态密码校验功能


1.预期二开实现效果:


a.用户名密码登陆后;

b.弹出模态动态密码校验窗口,动态密码文本,确定,取消按钮;

c.确定校验通过,加载主控逻辑;

d.校验失败或取消,登出到登陆界面;

e.不修改原有的主控插件逻辑代码,用二开方式做,扩展主控动态表单,新增插件继承主控插件实现二次校验逻辑;(卸载原有主控插件,避免出厂主控逻辑跑两遍);


2.插件配置



a.    SILVERLIGHT/WPF端主控台ID为BOS_MainConsoleSutra,二开时需拓展该单据,并创建新插件类(以TestMainConsolePlugin.cs为例),将新插件注册到拓展的主控台单据中。新插件继承原silverlight主控插件HomePageSutra,并将原插件HomePageSutra设置为不启用。只需勾选启用新插件TestMainConsolePlugin即可。同理,HTML5端也要按照以上步骤设置主控BOS_HtmlConsoleMain。

cchajianpng.webp

b.     按照需求创建所需的动态密码验证表单(本文以BAS_TESTOPTAUTHORIZE为例),并为该表单创建并注册上插件(以TestOPTAuthorize.cs)。插件主要处理获取动态密码,以及验动态密码的正确性,并将校验结果返回到主控台插件中。这里调用了星空生成动态密码的逻辑,只需要用户账户绑定了手机号,点击获取验证码,即可在手机号上获取到动态密码,该动态密码有效时间为30秒。二开可以根据需求创建单据,或者根据需要自己写动态密码的生成和校验逻辑。动态单据以及单据主要逻辑如下。需要引用组件:Kingdee.BOS.Business.PlugIn,Kingdee.BOS.ServiceHelper.dll,Kingdee.BOS.BusinessEntity.dll,Kingdee.BOS.dll。

ddtmm.webp

 /// <summary>

        /// 按钮点击事件

        /// </summary>

        /// <param name="e"></param>

        public override void ButtonClick(Core.DynamicForm.PlugIn.Args.ButtonClickEventArgs e)

        {

            if (e.Key.EqualsIgnoreCase("FBtnConfirm"))//确认,校验动态密码的正确性

            {

                bool checkResult = false;

                string str = this.Model.GetValue("FText").ToString();

 

                //动态密码的校验逻辑,这里用的星空的动态密码校验逻辑,该动态密码有效期为15秒

            //二开可以根据需要自己写动态密码的生成和校验逻辑

                if (!string.IsNullOrWhiteSpace(str))

                {

                    string message = string.Empty;

                    var issuccess = LightAppServiceHelper.CheckNewSecretKey(this.Context, this.Context.UserName, this.Context.UserId.ToString(), str, out message);

                    if (issuccess == true)

                    {

                        checkResult = true;

                        this.View.ReturnToParentWindow(new Core.DynamicForm.FormResult(checkResult));

                        this.View.Close();

                    }

                    else//校验失败,报错误提示,点击确定再关闭当前窗体

                    {

                        checkResult = false;

this.View.ShowWarnningMessage("动态密码验证失败,即将退回登录页。失败原因:" + message, "", MessageBoxOptions.YesNo,

                                  r =>

                                  {

                                      if (r == MessageBoxResult.Yes)

                                      {

                                          this.View.ReturnToParentWindow(new Core.DynamicForm.FormResult(checkResult));

                                          this.View.Close();

                                      }

                                  });

                    }

                }

                else

                {

                    this.View.ShowMessage("请输入验证码!");

                }

            }

            else if (e.Key.EqualsIgnoreCase("FBtnCancle"))

            {

                PassportHelper.UserAuthTokenRemove(this.View);

                this.View.AddAction("logoff", "index.aspx");

            }

            else if (e.Key.EqualsIgnoreCase("FBtnSendmsg"))//获取动态密码

            {

                ResultInfo result = new ResultInfo(string.Empty, false);

                CloudSMSInfo smsInfo = new CloudSMSInfo();

                result = LightAppServiceHelper.GetDynamicPassword(this.Context, this.Context.UserName, this.Context.UserId);

                if (result.Successful)

                {

                    smsInfo.SMSMessage = string.Format("动态验证码为:{0}", result.Message);

                  

金蝶云星空二开支持动态密码校验功能

1.预期二开实现效果:a.用户名密码登陆后;b.弹出模态动态密码校验窗口,动态密码文本,确定,取消按钮;c.确定校验通过,加载主控逻辑;d....
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信