hi
Thanks. I will check your project.
hi
You can check this article.
https://abp.io/community/articles/how-to-upload-and-download-files-in-the-abp-framework-using-angular-que8cdr8
hi
Instead of adding AbpIdentityProEntityFrameworkCoreModule in AdministrationService
Can you try to configure the WebRemoteDynamicClaimsPrincipalContributorOptions
in AdministrationService
?
Thanks.
public override void PreConfigureServices(ServiceConfigurationContext context)
{
PreConfigure<WebRemoteDynamicClaimsPrincipalContributorOptions>(options =>
{
options.IsEnabled = true;
});
}
Also please depends on the typeof(AbpAspNetCoreAuthenticationJwtBearerModule)
in AdministrationService
.
hi
Please send an email to liming.ma@volosoft.com
I will share the code change with you.
Thanks
hi
I will share the code later. You only need to override one or two class model Thanks,
hi
I will share the code, so you can also use it in version 8.
hi
The OpenIdConnect will validate the OpenIdConnectOptions.
So you must initially set a value(Authority, ClientId
).
But you can add an IPostConfigureAccountExternalProviderOptions
to change it dynamically.
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.IdentityModel.Protocols;
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
using Volo.Abp.Account.Public.Web.ExternalProviders;
using Volo.Abp.DependencyInjection;
namespace AbpMicroservices.AuthServer;
public class MyOpenIdConnectOptionsPostConfigureAccountExternalProviderOptions : IPostConfigureAccountExternalProviderOptions<OpenIdConnectOptions>, ITransientDependency
{
public Task PostConfigureAsync(string name, OpenIdConnectOptions options)
{
if (!string.IsNullOrEmpty(options.Authority))
{
options.MetadataAddress = options.Authority;
if (!options.MetadataAddress.EndsWith('/'))
{
options.MetadataAddress += "/";
}
options.MetadataAddress += ".well-known/openid-configuration";
}
options.ConfigurationManager = new ConfigurationManager<OpenIdConnectConfiguration>(options.MetadataAddress, new OpenIdConnectConfigurationRetriever(),
new HttpDocumentRetriever(options.Backchannel) { RequireHttps = options.RequireHttpsMetadata })
{
RefreshInterval = options.RefreshInterval,
AutomaticRefreshInterval = options.AutomaticRefreshInterval,
};
return Task.CompletedTask;
}
}