Hi,
I shared the modified project to your email
Hi,
You can try:
CPA/Migrations[ReplaceDbContext(typeof(IIdentityProDbContext))]
[ReplaceDbContext(typeof(ISaasDbContext))]
[ReplaceDbContext(typeof(IWeChatMPDbContext))]
[ConnectionStringName("Default")]
public class CP_ADbContext :
AbpDbContext<CP_ADbContext>,
IIdentityProDbContext,
ISaasDbContext,
IWeChatMPDbContext
{
/* Add DbSet properties for your Aggregate Roots / Entities here. */
#region Entities from the modules
/* Notice: We only implemented IIdentityProDbContext and ISaasDbContext
* and replaced them for this DbContext. This allows you to perform JOIN
* queries for the entities of these modules over the repositories easily. You
* typically don't need that for other modules. But, if you need, you can
* implement the DbContext interface of the needed module and use ReplaceDbContext
* attribute just like IIdentityProDbContext and ISaasDbContext.
*
* More info: Replacing a DbContext of a module ensures that the related module
* uses this DbContext on runtime. Otherwise, it will use its own DbContext class.
*/
// Identity
public DbSet<IdentityUser> Users { get; set; }
public DbSet<IdentityRole> Roles { get; set; }
public DbSet<IdentityClaimType> ClaimTypes { get; set; }
public DbSet<OrganizationUnit> OrganizationUnits { get; set; }
public DbSet<IdentitySecurityLog> SecurityLogs { get; set; }
public DbSet<IdentityLinkUser> LinkUsers { get; set; }
public DbSet<IdentityUserDelegation> UserDelegations { get; }
// SaaS
public DbSet<Tenant> Tenants { get; set; }
public DbSet<Edition> Editions { get; set; }
public DbSet<TenantConnectionString> TenantConnectionStrings { get; set; }
// WeChatMP
public DbSet<Mp> Mps { get; set; }
#endregion
public CP_ADbContext(DbContextOptions<CP_ADbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
/* Include modules to your migration db context */
builder.ConfigurePermissionManagement();
builder.ConfigureSettingManagement();
builder.ConfigureBackgroundJobs();
builder.ConfigureAuditLogging();
builder.ConfigureIdentityPro();
builder.ConfigureOpenIddictPro();
builder.ConfigureFeatureManagement();
builder.ConfigureLanguageManagement();
builder.ConfigureSaas();
builder.ConfigureTextTemplateManagement();
builder.ConfigureBlobStoring();
builder.ConfigureGdpr();
builder.ConfigureWeChatMP();
}
}
Hi,
Sorry, please try:
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(LoginModel))]
public class MyLoginModel : LoginModel
{
public MyLoginModel(IAuthenticationSchemeProvider schemeProvider, IOptions<AbpAccountOptions> accountOptions, IAbpRecaptchaValidatorFactory recaptchaValidatorFactory, IAccountExternalProviderAppService accountExternalProviderAppService, ICurrentPrincipalAccessor currentPrincipalAccessor, IOptions<IdentityOptions> identityOptions, IOptionsSnapshot<reCAPTCHAOptions> reCaptchaOptions) : base(schemeProvider, accountOptions, recaptchaValidatorFactory, accountExternalProviderAppService, currentPrincipalAccessor, identityOptions, reCaptchaOptions)
{
}
[UnitOfWork]
public override async Task<IActionResult> OnGetAsync()
{
ExternalProviders = await GetExternalProviders();
var azureAdProvider = VisibleExternalProviders.First();
var redirectUrl = Url.Page("./Login", pageHandler: "ExternalLoginCallback", values: new { ReturnUrl, ReturnUrlHash });
var properties = SignInManager.ConfigureExternalAuthenticationProperties(azureAdProvider.AuthenticationScheme, redirectUrl);
properties.Items["scheme"] = azureAdProvider.AuthenticationScheme;
return await Task.FromResult(Challenge(properties, azureAdProvider.AuthenticationScheme));
}
}
Hi,
Could you share a project that can reproduce the problem with me? shiwei.liang@volosoft.com I will check it.
Hi,
Yes, the logs look like everything is ok, anyway, I will continue to check this problem.
Hi,
You can check the document: https://docs.abp.io/en/abp/latest/UI/Blazor/Navigation-Menu#manipulating-the-existing-menu-items
Hi,
You can check this: https://github.com/abpframework/abp/issues/11079#issuecomment-1001492543
Your ticket was refunded.
Hi,
This is a problem, we will fix it in the next patch version.
This is a temporary solution:
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(RegisterModel))]
public class MyRegisterModel : RegisterModel
{
public override async Task<IActionResult> OnPostAsync()
{
await IdentityOptions.SetAsync();
return await base.OnPostAsync();
}
}