【分享】Web API登录接口
金蝶云社区-张天龙
张天龙
10人赞赏了该文章 7719次浏览 未经作者许可,禁止转载编辑于2018年05月11日 17:32:34




在使用webapi登录接口中,经常会遇到这样的问题
1、用户的密码经常变。
2、配置比较麻烦,经常需要开发人员指导。

新推出一种第三方集成密钥登录方式,比较好解决了上面的两个问题。

一、系统管理员生成集成密钥

1491361237xu5t41ws6r9soudr17lq4r8rv1tv9p8t.png

二、实施人员把集成密钥拷贝、或者上传到第三方系统

三、第三方系统使用集成密钥登录,参考代码
引用Kingdee.BOS.WebApi.Client.dll、Newtonsoft.Json.dll

  1.         static void Main(string[] args)

  2.         {

  3.             ApiClient client = new ApiClient("http://localhost/K3Cloud/");

  4.             string path = System.AppDomain.CurrentDomain.BaseDirectory + "\\人力资源管理系统.cnf";//密钥文件的存储路径,要注意保护好这个密钥文件,防止被被别人窃取!

  5.             byte[] passports = System.IO.File.ReadAllBytes(path);

  6.             string loginResultJson = client.LoginBySimplePassport(Convert.ToBase64String(passports));

  7.             WebApiLoginResult loginResult = JsonConvert.DeserializeObject<WebApiLoginResult>(loginResultJson);

  8.             if (loginResult.IsSuccessByAPI)

  9.             {

  10.                 Console.WriteLine("登录成功");

  11.             }

  12.             else

  13.             {

  14.                 Console.WriteLine("登录失败!原因:" + loginResult.Message);

  15.             }


  16.             Console.ReadLine();

  17.         }


  18.         public class WebApiLoginResult

  19.         {

  20.             public string Message { get; set; }

  21.             public bool IsSuccessByAPI { get; set; }

  22.             public string MessageCode { get; set; }

  23.             public K3Context Context { get; set; }

  24.         }


  25.         public class K3Context

  26.         {

  27.             public string UserToken { get; set; }

  28.             public int UserId { get; set; }

  29.             public string UserName { get; set; }

  30.             public string SessionId { get; set; }

  31.         }

复制代码


总结:通过秘钥文件的封装,降低了集成实施的难度!


赞 10