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 = PeWebApi自定义登录接口实现对当前组织的指定
说明:1. 2021年3月份之后的补丁(包括3月份),在登录时要指定组织直接调用接口即可1)系统封装的客户端调用ValidateLoginByOrgNumber方法...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



