定制GUI客户端登录demo

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

第二步:引入金蝶组件
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】

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


第四步:编辑登录逻辑(在**.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
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



