远程服务调用使用客户端凭据登录

1、不使用当前上下文token 

2、需要表示调用的客户端哪个一个客户端

"RemoteServices": {
"SystemBillNoManagement": {
"BaseUrl": "http://192.168.1.50:50025/",
"UseCurrentAccessToken": "false",
"IdentityClient":"InternalServiceClient"
},
"SystemBaseManagement": {
"BaseUrl": "http://192.168.1.50:50015/"
},
},
"IdentityClients": {
"InternalServiceClient": {
"Authority": "http://192.168.1.50:44385/",
"RequireHttps": false,
"GrantType": "client_credentials",
"Scope": "jgsoft-abp-application",
"ClientId": "InternalServiceClient",
"ClientSecret": "1q2w3e*"
}

},

 

 

ublic class AbpIdentityClientOptions
{
public IdentityClientConfigurationDictionary IdentityClients { get; set; }

public AbpIdentityClientOptions()
{
IdentityClients = new IdentityClientConfigurationDictionary();
}

public IdentityClientConfiguration? GetClientConfiguration(ICurrentTenant currentTenant, string? identityClientName = null)
{
if (identityClientName.IsNullOrWhiteSpace())
{
identityClientName = IdentityClientConfigurationDictionary.DefaultName;
}

if (currentTenant.Id.HasValue)
{
var tenantConfiguration = IdentityClients.FirstOrDefault(x => x.Key == $"{identityClientName}.{currentTenant.Id}");
if (tenantConfiguration.Key == null && !currentTenant.Name.IsNullOrWhiteSpace())
{
tenantConfiguration = IdentityClients.FirstOrDefault(x => x.Key == $"{identityClientName}.{currentTenant.Name}");
}

if (tenantConfiguration.Key != null)
{
return tenantConfiguration.Value;
}
}

return IdentityClients.GetOrDefault(identityClientName!) ??
IdentityClients.Default;
}
}

posted @ 2024-04-28 21:08  精耕细琢  阅读(2)  评论(0编辑  收藏  举报