修改一致性核查导表
parent
969d22fdae
commit
6cde1b4405
|
@ -395,10 +395,10 @@ namespace IRaCIS.Api.Controllers
|
||||||
/// 后端通过这个code ,带上客户端信息,和授权类型 可以向单点登录提供商,获取厂商token
|
/// 后端通过这个code ,带上客户端信息,和授权类型 可以向单点登录提供商,获取厂商token
|
||||||
///
|
///
|
||||||
/// 但是单点登录提供商提供的token 和我们系统的token 是有区别的,我们的token里面有我们业务系统的UserId,涉及到很多业务操作,所以在此出现了两种方案
|
/// 但是单点登录提供商提供的token 和我们系统的token 是有区别的,我们的token里面有我们业务系统的UserId,涉及到很多业务操作,所以在此出现了两种方案
|
||||||
/// 1、前段使用厂商的Token。 后端通过code 获取厂商的Token 返回前端的同时返回我们系统的UserId,前段在http 请求头加上一个自定义参数,带上UserId 后端取用户Id的地方变动下,
|
/// 1、前端使用厂商的Token。 后端通过code 获取厂商的Token 返回前端的同时返回我们系统的UserId,前段在http 请求头加上一个自定义参数,带上UserId 后端取用户Id的地方变动下,
|
||||||
/// 但是除了UserId外,后端还有其他信息也是从Token取的,所以在请求头也需要带上,此外后端认证Token的方式也需要变化,改造成本稍大(如果是微服务,做这种处理还是可以的)。
|
/// 但是除了UserId外,后端还有其他信息也是从Token取的,所以在请求头也需要带上,此外后端认证Token的方式也需要变化,改造成本稍大(如果是微服务,做这种处理还是可以的)。
|
||||||
/// 2、前段还是使用我们后台自己的Token。后端通过code 获取厂商Token的同时,后端做一个隐藏登录,返回厂商的Token的同时,也返回我们系统的Token。
|
/// 2、前端还是使用我们后台自己的Token。后端通过code 获取厂商Token的同时,后端做一个隐藏登录,返回厂商的Token的同时,也返回我们系统的Token。
|
||||||
/// (像我们单体,这种方式最简单,我们用单点登录,无非就是不想记多个系统的密码,自动登录而已,其他不支持的项目改造陈本也是最低的)
|
/// (像我们单体,这种方式最简单,我们用单点登录,无非就是不想记多个系统的密码,自动登录而已,其他不支持的项目改造成本也是最低的)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="type">回调的厂商类型 比如github, google, 我们用的logto ,不同的厂商回调到前端的地址可以不同的,但是请求后端的接口可以是同一个 </param>
|
/// <param name="type">回调的厂商类型 比如github, google, 我们用的logto ,不同的厂商回调到前端的地址可以不同的,但是请求后端的接口可以是同一个 </param>
|
||||||
/// <param name="code">在第三方平台登录成功后,回调前端的时候会返回一个code </param>
|
/// <param name="code">在第三方平台登录成功后,回调前端的时候会返回一个code </param>
|
||||||
|
|
|
@ -39,10 +39,10 @@
|
||||||
后端通过这个code ,带上客户端信息,和授权类型 可以向单点登录提供商,获取厂商token
|
后端通过这个code ,带上客户端信息,和授权类型 可以向单点登录提供商,获取厂商token
|
||||||
|
|
||||||
但是单点登录提供商提供的token 和我们系统的token 是有区别的,我们的token里面有我们业务系统的UserId,涉及到很多业务操作,所以在此出现了两种方案
|
但是单点登录提供商提供的token 和我们系统的token 是有区别的,我们的token里面有我们业务系统的UserId,涉及到很多业务操作,所以在此出现了两种方案
|
||||||
1、前段使用厂商的Token。 后端通过code 获取厂商的Token 返回前端的同时返回我们系统的UserId,前段在http 请求头加上一个自定义参数,带上UserId 后端取用户Id的地方变动下,
|
1、前端使用厂商的Token。 后端通过code 获取厂商的Token 返回前端的同时返回我们系统的UserId,前段在http 请求头加上一个自定义参数,带上UserId 后端取用户Id的地方变动下,
|
||||||
但是除了UserId外,后端还有其他信息也是从Token取的,所以在请求头也需要带上,此外后端认证Token的方式也需要变化,改造成本稍大(如果是微服务,做这种处理还是可以的)。
|
但是除了UserId外,后端还有其他信息也是从Token取的,所以在请求头也需要带上,此外后端认证Token的方式也需要变化,改造成本稍大(如果是微服务,做这种处理还是可以的)。
|
||||||
2、前段还是使用我们后台自己的Token。后端通过code 获取厂商Token的同时,后端做一个隐藏登录,返回厂商的Token的同时,也返回我们系统的Token。
|
2、前端还是使用我们后台自己的Token。后端通过code 获取厂商Token的同时,后端做一个隐藏登录,返回厂商的Token的同时,也返回我们系统的Token。
|
||||||
(像我们单体,这种方式最简单,我们用单点登录,无非就是不想记多个系统的密码,自动登录而已,其他不支持的项目改造陈本也是最低的)
|
(像我们单体,这种方式最简单,我们用单点登录,无非就是不想记多个系统的密码,自动登录而已,其他不支持的项目改造成本也是最低的)
|
||||||
</summary>
|
</summary>
|
||||||
<param name="type">回调的厂商类型 比如github, google, 我们用的logto ,不同的厂商回调到前端的地址可以不同的,但是请求后端的接口可以是同一个 </param>
|
<param name="type">回调的厂商类型 比如github, google, 我们用的logto ,不同的厂商回调到前端的地址可以不同的,但是请求后端的接口可以是同一个 </param>
|
||||||
<param name="code">在第三方平台登录成功后,回调前端的时候会返回一个code </param>
|
<param name="code">在第三方平台登录成功后,回调前端的时候会返回一个code </param>
|
||||||
|
|
|
@ -0,0 +1,90 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net.Security;
|
||||||
|
using System.Net;
|
||||||
|
using System.Security.Cryptography.X509Certificates;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using RestSharp;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using IRaCIS.Core.Infrastructure.Extention;
|
||||||
|
using NPOI.SS.Formula.Functions;
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Application.Helper.OtherTool
|
||||||
|
{
|
||||||
|
public static class RestClientAPI
|
||||||
|
{
|
||||||
|
public static async Task<T> GetAsync<T>(string api, Dictionary<string, string> query = null, Dictionary<string, string> headers = null)
|
||||||
|
{
|
||||||
|
using var _client = new RestClient();
|
||||||
|
|
||||||
|
var request = new RestRequest(api, Method.Get);
|
||||||
|
|
||||||
|
if (query != null)
|
||||||
|
{
|
||||||
|
foreach (var kv in query)
|
||||||
|
{
|
||||||
|
request.AddParameter(kv.Key, kv.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (headers != null)
|
||||||
|
{
|
||||||
|
foreach (var header in headers)
|
||||||
|
{
|
||||||
|
request.AddHeader(header.Key, header.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var response = await _client.ExecuteAsync(request);
|
||||||
|
|
||||||
|
if (response.IsSuccessful)
|
||||||
|
{
|
||||||
|
return JsonConvert.DeserializeObject<T>(response.Content ?? string.Empty);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine($"请求失败,错误代码: {response.StatusCode}, 错误消息: {response.ErrorMessage}");
|
||||||
|
return JsonConvert.DeserializeObject<T>(string.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static async Task<T> PostAsync<T>(string api, object jsonObj = null, Dictionary<string, string> headers = null)
|
||||||
|
{
|
||||||
|
using var _client = new RestClient();
|
||||||
|
|
||||||
|
var request = new RestRequest(api, Method.Post);
|
||||||
|
|
||||||
|
if (jsonObj != null)
|
||||||
|
{
|
||||||
|
request.AddJsonBody(jsonObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (headers != null)
|
||||||
|
{
|
||||||
|
foreach (var header in headers)
|
||||||
|
{
|
||||||
|
request.AddHeader(header.Key, header.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var response = await _client.ExecuteAsync(request);
|
||||||
|
|
||||||
|
if (response.IsSuccessful)
|
||||||
|
{
|
||||||
|
return JsonConvert.DeserializeObject<T>(response.Content ?? string.Empty);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine($"请求失败,错误代码: {response.StatusCode}, 错误消息: {response.ErrorMessage}");
|
||||||
|
return JsonConvert.DeserializeObject<T>(string.Empty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -236,7 +236,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer
|
||||||
}
|
}
|
||||||
|
|
||||||
dialogMsg.AppendLine($"<br/>");
|
dialogMsg.AppendLine($"<br/>");
|
||||||
dialogMsg.AppendLine(@$"<div>{_localizer["ConsistencyVerification_Desc"]}<div/>");
|
dialogMsg.AppendLine(@$"<div>{_localizer["ConsistencyVerification_Desc"]}</div>");
|
||||||
|
|
||||||
dbSV.CheckResult = _localizer["ConsistencyVerification_Conf"] +
|
dbSV.CheckResult = _localizer["ConsistencyVerification_Conf"] +
|
||||||
String.Join(" | ", dbExceptExcel.Select(t => $"{_localizer["ConsistencyVerification_EdcL", t.StudyDate, t.Modality]}")) + " | "
|
String.Join(" | ", dbExceptExcel.Select(t => $"{_localizer["ConsistencyVerification_EdcL", t.StudyDate, t.Modality]}")) + " | "
|
||||||
|
|
|
@ -352,7 +352,8 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
public string Content { get; set; }
|
public string Content { get; set; }
|
||||||
|
|
||||||
public string ContentReplaced => Content.Replace("<br>", "").Replace("<br>", "").Replace("<br/>", "").Replace("<div style='text-indent: 20px;'>", "").Replace("</div>", "");
|
public string ContentReplaced => Content.Replace("<br>", "").Replace("<br/>", "").Replace("<div style='text-indent: 20px;'>", "")
|
||||||
|
.Replace("<div style='color: red'>", "").Replace("</div>", "").Replace("<div/>", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue