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

定制GUI客户端登录demo

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

定制GUI客户端登录demo

第一步:在Visual Studio 2012中新增类库工程;需要新增有WPF界面元素的,必须新建WPF类库类型的工程。(.Net Framework 4 参考图片),温馨提示:最好用Visual Studio 2012工具进行编写

image.webp

第二步:引入金蝶组件

Kingdee.BOS.dll [必选], 
Kingdee.BOS.Client.Core.dll [必选], 
Kingdee.BOS.ServiceFacade.KDServiceClient.dll [可选],
Kingdee.BOS.ServiceFacade.KDServiceClientFx.dll [可选],

Kingdee.BOS.XPF.ControlPlugins.Contracts.dll [可选]

log4net2 [必选]

* 以上组件安装云星空桌面客户端后,在磁盘目录可以找到 【C:\Program Files (x86)\Kingdee\K3Cloud\DeskClient\K3CloudClient

image.webp

第三步:编辑界面即编辑**.xaml页面

image.webp

image.webp

第四步:编辑登录逻辑(在**.xaml.cs编辑)

using Kingdee.BOS.Authentication;

using Kingdee.BOS.Client.Core;

using Kingdee.BOS.DataCenterInfo;

using Kingdee.BOS.ServiceFacade.KDServiceClient.Account;

using Kingdee.BOS.Util;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;


namespace ZQWCustomLoginUI

{

    /// <summary>

    /// UserControl1.xaml 的交互逻辑

    /// </summary>

    public partial class ZQWLoginV1 : UserControl, IKDLoginControl

    {

        IKDLoginControlOwner Owner { get; set; }

        //IKDLoginControlOwner _Owner = null;

        ItemModel currentDataCenter { get; set; }

        public ZQWLoginV1()

        {

            InitializeComponent();

        }


        private void Button_Click_1(object sender, RoutedEventArgs e)

        {

            //MessageBox.Show(string.Format("userName:{0}\r\npassword:{1}", TxtUserName.Text, TxtPassword.Text));

            var sDCName = TxtDataCenter.Text;

            var ret = this.Owner.DoLogin();

            ret.Context.DataCenterName = sDCName;

            // ret.C.DataCenterName = sDCName;

            if (ret.LoginResultType == LoginResultType.Success)

            {

                this.Owner.LoadMainWindow();

            }

            else

            {

                this.Owner.ShowErrorMessage(new Exception(ret.Message));

            }

        }


        public void ClearData()

        {

            //

        }


        public void DoLogin()

        {

            //

        }


        public bool Focus(string key)

        {

            return true;

        }


        public string GetFormTitle()

        {

            return "***登录窗口";

        }


        public LoginInfo GetLoginInfo()

        {

            //演示案例

            //var loginInfo=DemoLoginIfo();

            //需要密码登录

            //var loginInfo = NeedPwdLoginIfo();

            //不需要密码登录

            var loginInfo = NoNeedPwdLoginIfo();

            return loginInfo;

        }

        /// <summary>

        /// 免密登录

        /// </summary>

        /// <returns></returns>

        private LoginInfo NoNeedPwdLoginIfo()

        {

            var ret = new Kingdee.BOS.Authentication.LoginInfo()

            {

                ClientInfo = this.GetOwner().GetClientInfo(),

                PasswordIsEncrypted = false,

                Password = "xxxx",//任意字符串,但不能为空    

                // 此处是强制使用【简单证书】登陆    

                AuthenticateType = AuthenticationType.SimplePassportAuthentication,

                AcctID = "604f2bb47fd138", //数据中心ID     

                Username = TxtUserName.Text,

                Lcid = 2052,

                AppId = "212233_QY3M4ZuFUnp/4+/FT+6O5ZVs0I5ZXKKP", //第三方系统appid    

                // Timestamp = DateTime.Now.GetTimestamp().ToString(), //时间戳,  

                Timestamp = DateTimeFormatUtils.CurrentTimeMillis() / 1000,//时间戳,

                AppSecret = "cce93638737e4d09b15d9c027cbd2a37",//第三方系统密钥

                // 第三方系统登陆授权生成签名数据    

                SignedData = Kingdee.BOS.Util.SHA1Util.GetSignature(

                new string[] { "604f2bb47fd138", TxtUserName.Text, "212233_QY3M4ZuFUnp/4+/FT+6O5ZVs0I5ZXKKP",

                    "cce93638737e4d09b15d9c027cbd2a37", (DateTimeFormatUtils.CurrentTimeMillis() / 1000).ToString() })

            };

            Kingdee.BOS.Client.Core.ClientAppProxy.Current.StartAppVerifyCustomArgs =

                "{dbid:'" + ret.AcctID + "',username:'" + ret.Username + "',appid:'" + ret.AppId + "',signeddata:'" + ret.SignedData + "',timestamp:'" + ret.Timestamp + "',lcid:'2052',usertoken:'',formid:'',pkid:'',formtype:'',otherargs:'',origintype:'SimPas',entryrole:''}";

            return ret;

        }

        /// <summary>

        /// 需要密码登录

        /// </summary>

        /// <returns></returns>

        private LoginInfo NeedPwdLoginIfo()

        {

            var sDCName = TxtDataCenter.Text;

            var proxy = new AccountClientProxy();

            var dt = DateTime.Now;

            var dclist = proxy.GetDataCenterList();

            var dcItem = dclist.Find(new Pr

定制GUI客户端登录demo

第一步:在Visual Studio 2012中新增类库工程;需要新增有WPF界面元素的,必须新建WPF类库类型的工程。(.Net Framework 4 参考图片),...
点击下载文档文档为doc格式

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

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