Hi,
You can try
[ExposeServices(typeof(LoginModel))]
public class MyLoginModel : LoginModel
{
protected virtual async Task<IdentityUser> CreateExternalUserAsync(ExternalLoginInfo info)
{
var email = loginInfo.Principal.FindFirstValue(AbpClaimTypes.Email) ?? loginInfo.Principal.FindFirstValue(ClaimTypes.Email);
var user = await UserManager.FindByEmailAsync(email);
// just a demo, You can check if the user exists using any way
if(user == null)
{
user = await base.CreateExternalUserAsync(info);
}
}
}
[ExposeServices(typeof(RegisterModel))]
public class MyRegisterModel : RegisterModel
{
protected virtual async Task<IdentityUser> RegisterExternalUserAsync(ExternalLoginInfo externalLoginInfo, string emailAddress)
{
var email = loginInfo.Principal.FindFirstValue(AbpClaimTypes.Email) ?? loginInfo.Principal.FindFirstValue(ClaimTypes.Email);
var user = await UserManager.FindByEmailAsync(email);
// just a demo, You can check if the user exists using any way
if(user == null)
{
user = await base.RegisterExternalUserAsync(externalLoginInfo, emailAddress);
}
//.. first login
}
}
You can check this: https://docs.abp.io/en/commercial/latest/modules/account#local-login
2.
You can override the login and register page, for example:
[ExposeServices(typeof(LoginModel))]
public class MyLoginModel : LoginModel
{
protected virtual async Task<IdentityUser> CreateExternalUserAsync(ExternalLoginInfo info)
{
var user = await base.CreateExternalUserAsync(info);
//.. first login
}
}
[ExposeServices(typeof(RegisterModel))]
public class MyRegisterModel : RegisterModel
{
protected virtual async Task<IdentityUser> RegisterExternalUserAsync(ExternalLoginInfo externalLoginInfo, string emailAddress)
{
var user = await base.RegisterExternalUserAsync(externalLoginInfo, emailAddress);
//.. first login
}
}
Hi,
@balessi75
No, it's Blazor UI.
Unlock this ticket as requested by DEKUKDEV
Hi,
For some reason, this issue was moved to version 3.1.
You can try this temporary solution:
public class MyBundleContributor : BundleContributor
{
public override void ConfigureBundle(BundleConfigurationContext context)
{
context.Files.Add("/_content/Volo.Abp.AspNetCore.Components.Web.LeptonXTheme/side-menu/css/layout-bundle.css");
context.Files.Add("/_content/Volo.Abp.AspNetCore.Components.Web.LeptonXTheme/side-menu/css/abp-bundle.css");
context.Files.Add("/_content/Volo.Abp.AspNetCore.Components.Web.LeptonXTheme/side-menu/css/blazor-bundle.css");
context.Files.Add("/_content/Volo.Abp.AspNetCore.Components.Web.LeptonXTheme/side-menu/css/font-bundle.css");
context.Files.Add("/_content/Volo.Abp.AspNetCore.Components.Web.LeptonXTheme/side-menu/css/bootstrap-light.css");
context.Files.Add("/_content/Volo.Abp.AspNetCore.Components.Web.LeptonXTheme/side-menu/css/light.css");
}
}
Configure<AbpBundlingOptions>(options =>
{
options.StyleBundles.Configure(
BlazorLeptonXThemeBundles.Styles.Global,
bundle =>
{
bundle.AddContributors(new MyBundleContributor());
}
);
});
Hi,
Will it work if you install the StackExchange.Redis
version 2.7.4
to the HttpApi.Host
project?
Hi,
Thanks, we will consider it in the next version. your ticket was refunded.
Hi,
I'm available now.
Hi,
Yes, you shouldn't validate on the Dto.
We recommend validating on domain service: https://docs.abp.io/en/abp/latest/Domain-Services#application-services-vs-domain-services
Ok, join the meeting: https://us05web.zoom.us/j/84476788133?pwd=OexABNPrNizuDNTc4uE9Aswo60Wnun.1