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

WebApi自定义登录接口实现对当前组织的指定

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

WebApi自定义登录接口实现对当前组织的指定

说明:

1. 2021年3月份之后的补丁(包括3月份),在登录时要指定组织直接调用接口即可

1)系统封装的客户端调用ValidateLoginByOrgNumber方法

2)自定义客户端,调用服务端的ValidateUserByOrgNumber接口

2.  2019年06月27日之后的补丁(包括6月份)到2021年3月份之前的补丁,需要自定义Api接口,传入相应的组织,不需要对组织进行处理,调用下面的ValidateUserByOrg方法即可

3.  2019年06月27日之的补丁,需要调用下面完整代码来设置组织

4. 自定义接口参考:https://vip.kingdee.com/article/216280036993550080

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using Kingdee.BOS.Authentication;
using Kingdee.BOS.WebApi.ServicesStub;
using Kingdee.BOS.ServiceFacade.KDServiceFx;
using Newtonsoft.Json;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Core.Permission;
namespace Kingdee.BOS.TestPlugIn.WebApi
{
    /// <summary>
    ///自定义登录接口
    /// </summary>
    public class CustomLogIn : AbstractWebApiBusinessService
    {
        public CustomLogIn(KDServiceContext context)
            : base(context)
        { }
 
        // <summary>
        ///实现带组织参数传入
            ///2019年06月27日之后(包括6月份)到2021年3月份之前的补丁,使用此方法
        /// </summary>
        public string ValidateUserByOrg(string acctID, string username, string password, int lcid = 2052, string orgNumber = null)
        {
            AuthService autuService = new AuthService(this.KDContext);
            LoginInfo loginInfo = new LoginInfo()
            {
                OrgNumber = orgNumber, // 2019年06月27日 补丁才有
                PasswordIsEncrypted = false,
                Username = username,
                AcctID = acctID,
                Password = password,
                AuthenticateType = AuthenticationType.PwdAuthentication,
                Lcid = lcid,
                KickoutFlag = 2  //1:踢人, 2:不踢人
            };
            LoginResult result =autuService.ValidateLoginInfo("", loginInfo);
            var jsonResult = JsonConvert.SerializeObject(result);
            return jsonResult;
        }
              
            // <summary>
        ///实现带组织参数传入
            ///2019年06月27日之前的补丁,使用此方法
        /// </summary>
        public string ValidateUserByOrg2(string acctID, string username, string password, int lcid = 2052, string orgNumber = null)
        {
            AuthService autuService = new AuthService(this.KDContext);
            LoginInfo loginInfo = new LoginInfo()
            {
                PasswordIsEncrypted = false,
                Username = username,
                AcctID = acctID,
                Password = password,
                AuthenticateType = AuthenticationType.PwdAuthentication,
                Lcid = lcid,
                KickoutFlag = 2  //1:踢人, 2:不踢人
            };
            LoginResult result =autuService.ValidateLoginInfo("", loginInfo);
                  this.SetCustomOrg(result,orgNumber)
            var jsonResult = JsonConvert.SerializeObject(result);
            return jsonResult;
        }
 
        /// <summary>
        /// 给上下文设置当前组织 //2019年06月27日 补丁之前才需要调用
        /// </summary>
        /// <param name="loginResult"></param>
        /// <param name="orgNumber"></param>
        private void SetCustomOrg(LoginResult loginResult, string orgNumber)
        {
            if (loginResult.IsSuccessByAPI && loginResult.Context != null)
            {
                var ctxnew = loginResult.Context;
                List<Organization> orgList = Pe

WebApi自定义登录接口实现对当前组织的指定

说明:1. 2021年3月份之后的补丁(包括3月份),在登录时要指定组织直接调用接口即可1)系统封装的客户端调用ValidateLoginByOrgNumber方法...
点击下载文档文档为doc格式

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

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