Hi,
Sorry, I bad, Blazor server will not call middleware. you can try this:
public class AbpRefreshEditionIdFilter : IHubFilter
{
public virtual async ValueTask<object> InvokeMethodAsync(HubInvocationContext invocationContext,
Func<HubInvocationContext, ValueTask<object>> next)
{
var currentTenant = invocationContext.ServiceProvider.GetRequiredService<ICurrentTenant>();
var currentUser = invocationContext.ServiceProvider.GetRequiredService<ICurrentUser>();
if (!currentUser.IsAuthenticated || !currentUser.TenantId.HasValue)
{
return await next(invocationContext);
}
var tenantStore = invocationContext.ServiceProvider.GetRequiredService<ITenantRepository>();
var currentPrincipalAccessor = invocationContext.ServiceProvider.GetRequiredService<ICurrentPrincipalAccessor>();
var tenant = await tenantStore.FindAsync(currentTenant.GetId());
var claims = currentPrincipalAccessor.Principal.Claims.ToList();
claims.ReplaceOne(x => x.Type == AbpClaimTypes.EditionId,
new Claim(AbpClaimTypes.EditionId, tenant.EditionId?.ToString() ?? string.Empty));
using (currentPrincipalAccessor.Change(claims))
{
return await next(invocationContext);
}
}
}
Configure<HubOptions>(options =>
{
options.AddFilter<AbpRefreshEditionIdFilter>();
});
HI,
Can you check this? https://support.abp.io/QA/Questions/2090/How-to-clear-cache-for-features
Hi,
We will check it.
Hi,
For your case, The main enhancement is the use of caching.
Since you have no plan to upgrade, you need to replace the TenantStore with your custom implementation. you can download the Saas module to check what is changed.
Hi,
We have made many performance improvements in the later versions, can you try using the latest to test again?
Hi,
You can try to override the application service and use DisableValidationAttribute to disable DTO validation (but you need to verify the DTO manually)
See: https://docs.abp.io/en/abp/latest/Customizing-Application-Modules-Overriding-Services#overriding-a-service-class
For example:
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(IIdentityUserAppService), typeof(IdentityUserAppService), typeof(MyIdentityUserAppService))]
public class MyIdentityUserAppService : IdentityUserAppService
{
//.....
[DisableValidation]
[Authorize(IdentityPermissions.Users.Create)]
public virtual async Task<IdentityUserDto> CreateAsync(IdentityUserCreateDto input)
{
//..validate DTO.....
return await base.CreateAsync(input);
}
}
Hi,
Chat module using the standard ASP.NETCore SianglR,
You can check the document: https://docs.microsoft.com/en-us/aspnet/core/signalr/scale
Hi,
You can replace or remove static files via the bundle system. see: https://docs.abp.io/en/abp/latest/UI/AspNetCore/Bundling-Minification#configuring-an-existing-bundle
Hi,
The UserName is required, you need to change the module source code, but it has a lot of work to do.
I've also overwritten the CreateAsync method to set the username to the email address:
You can use email as a user name in the front end. it should be working.