ok, Please also share the steps to show the issue, thanks.
hi
I found a new discuss, You can take a look https://github.com/abpframework/abp/issues/4448
Dynamic permissions are suitable for distributed/microservice projects, and your situation is special. You'd better consider rewriting the above service custom code to solve it.
I will add code to the abp framework to fix this case.
hi
public class AddAbpRoleDataSeedContributor : IDataSeedContributor, ITransientDependency
{
private readonly IdentityUserManager _identityUserManager;
private readonly IdentityRoleManager _identityRoleManager;
private readonly IPermissionDataSeeder _permissionDataSeeder;
private readonly IFeatureChecker _featureChecker;
private readonly IFeatureManager _featureManager;
private readonly IPermissionDefinitionManager _permissionDefinitionManager;
private readonly ICurrentPrincipalAccessor _currentPrincipalAccessor;
private readonly ITenantRepository _tenantRepository;
public AddAbpRoleDataSeedContributor(IdentityUserManager identityUserManager, IdentityRoleManager identityRoleManager, IPermissionDataSeeder permissionDataSeeder, IFeatureChecker featureChecker, IPermissionDefinitionManager permissionDefinitionManager, IFeatureManager featureManager, ICurrentPrincipalAccessor currentPrincipalAccessor, ITenantRepository tenantRepository)
{
_identityUserManager = identityUserManager;
_identityRoleManager = identityRoleManager;
_permissionDataSeeder = permissionDataSeeder;
_featureChecker = featureChecker;
_permissionDefinitionManager = permissionDefinitionManager;
_featureManager = featureManager;
_currentPrincipalAccessor = currentPrincipalAccessor;
_tenantRepository = tenantRepository;
}
public async Task SeedAsync(DataSeedContext context)
{
if (context.TenantId.HasValue)
{
var tenant = await _tenantRepository.FindByIdAsync(context.TenantId.Value);
var myPrincipal = _currentPrincipalAccessor.Principal.Clone();
myPrincipal.Identities.First().AddClaim(new Claim(AbpClaimTypes.TenantId, tenant.Id.ToString()));
if (tenant.EditionId.HasValue)
{
myPrincipal.Identities.First().AddClaim(new Claim(AbpClaimTypes.EditionId, tenant.EditionId.ToString()));
}
using (_currentPrincipalAccessor.Change(_currentPrincipalAccessor.Principal))
{
var version = await _featureChecker.GetOrNullAsync(IdentityProFeature.EnableLdapLogin);
var version2 = await _featureManager.GetOrNullForTenantAsync(IdentityProFeature.EnableLdapLogin, context.TenantId.Value);
if(version == "V2")
{
//dosomething for V2
}
else
{
//dosomthing for V1
}
}
}
}
}
hi
Is there any info in the logs?
How can I reproduce this in my locally?
Thanks.
hi
Can you share a simple project? I will reproduce the problem locally.
hi
Sorry, I'm not familiar with Microsoft Graph.
Can you try a new template project? or share a simple project to reproduce? Thanks
liming.ma@volosoft.com
hi
We have the AbpValidateClientPostLogoutRedirectUri to skip the validation. Can you try to debug this by adding your AbpValidateClientPostLogoutRedirectUri?
https://github.com/abpframework/abp/blob/dev/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateClientPostLogoutRedirectUri.cs#L8 https://github.com/abpframework/abp/blob/f851999604193491b52ba72f19a289aa098536c3/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs#L126C1-L127