当前位置: 首页 > news >正文

统一门户单点登入(C#-OOS机制)

1.非自研系统

通过接口,获取第三方系统token,存redis缓存,设计跳转配置,根据获取的配置路由等用户信息来访问第三方系统免登录。(登入校验在第三方系统实现)
/// <summary>
/// 获取OA登录Token
/// </summary>
/// <returns></returns>
public async Task<string> PostOaAcessTokenAsync(string loginid)
{string resToken = "";var formData = new Dictionary<string, string>{{ "appid", "*************************" },{ "loginid", loginid }};var content = new FormUrlEncodedContent(formData);// 发送POST请求HttpResponseMessage response = await HttpHelper.Client.PostAsync("http://127.0.0.1:8888/ssologin/getToken", content);// 处理响应if (response.IsSuccessStatusCode){// 对成功的响应进行操作var responseContent = await response.Content.ReadAsStringAsync();resToken = responseContent;if (resToken.Contains("has no account:")){throw new UserFriendlyException(UserConst.OA_User_No_Exist);}return resToken;// 域登陆成功}else{// 处理错误throw new UserFriendlyException(UserConst.Login_Error);}}

1.自研系统(OOS机制-单点登录)

通过调整自研系统登入接口参数,添加token字段,由门户创建token,这边按照token值来判断是否不走正常账号密码登入,直接通过token值调用门户接口校验,如果校验成功则质检进入自研系统。
public async Task SSOLoginValidationAsync(string token, Action<UserEntity> userAction = null)
{var user = new UserEntity();// 发送POST请求HttpResponseMessage response = await HttpHelper.Client.PostAsync("http://127.0.0.1/prod-api/auth/get-token/" + token, null);// 处理响应if (response.IsSuccessStatusCode){// 对成功的响应进行操作var responseContent = await response.Content.ReadAsStringAsync();var jObject = JObject.Parse(responseContent);var bo = jObject["succeeded"].Value<bool>();if (bo){string UserCode = jObject["data"].Value<string>();// 工号if (await ExistAsync(UserCode, o => user = o)){if (userAction is not null){userAction.Invoke(user);return;// 域登陆成功}}throw new UserFriendlyException(UserConst.Login_User_No_Exist);}else{// 处理域登陆失败throw new UserFriendlyException(UserConst.Auth_User_Token_Invalid);}}else{// 处理错误throw new UserFriendlyException(UserConst.SSO_Token_Err);}
}

http://www.mrgr.cn/news/83210.html

相关文章:

  • [创业之路-289]:《产品开发管理-方法.流程.工具 》-15- 需求管理 - 第1步:原始需求收集
  • Docker 部署 redis | 国内阿里镜像
  • AtCoder Beginner Contest 392(ABCDE)
  • 创新领先!珈和科技获评省级企业技术中心
  • 在 MySQL 8 中配置主从同步(主从复制)是一个常见的需求,用于实现数据的冗余备份、读写分离等。
  • 2、k8s的cni网络插件和基本操作命令
  • 04、Redis深入数据结构
  • 使用PVE快速创建虚拟机集群并搭建docker环境
  • https原理
  • 华为C语言编程规范总结
  • WinCC flexible SMART V4 SP2软件安装事项
  • C++中的表达式
  • 高性能网络模式:Reactor 和 Proactor
  • Linux标准IOday3
  • yum换源
  • Spring——自动装配
  • 【python基础——异常BUG】
  • redis:安装部署、升级以及失败回退
  • 【算法】八大排序算法
  • UI自动化测试框架playwright--初级入门
  • 音视频入门基础:MPEG2-PS专题(5)——FFmpeg源码中,解析PS流中的PES流的实现
  • K-means算法在无监督学习中的应用
  • 第四、五章图论和网络爬虫+网络搜索
  • python虚拟环境的使用
  • C# 对象和类型(结构)
  • ArrayList和HashMap区别