hi
It does not support this kind of structural solution.
I will create an internal issue to track your request.
Thanks.
Hi
I can confirm the problem is related to your database. It is not code problem.
Can you test your app with local db?
Thanks.
hi
Can you try this?
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Options;
using Volo.Abp;
using Volo.Abp.Account;
using Volo.Abp.Account.Emailing;
using Volo.Abp.Account.PhoneNumber;
using Volo.Abp.BlobStoring;
using Volo.Abp.Caching;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Identity;
using Volo.Abp.Imaging;
using Volo.Abp.SettingManagement;
namespace MyCompanyName.MyProjectName;
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(AccountAppService), typeof(IAccountAppService))]
public class MyAccountAppService : AccountAppService
{
protected IIdentityUserRepository IdentityUserRepository { get; set; }
public MyAccountAppService(
IdentityUserManager userManager,
IAccountEmailer accountEmailer,
IAccountPhoneService phoneService,
IIdentityRoleRepository roleRepository,
IdentitySecurityLogManager identitySecurityLogManager,
IBlobContainer<AccountProfilePictureContainer> accountProfilePictureContainer,
ISettingManager settingManager,
IOptions<IdentityOptions> identityOptions,
IIdentitySecurityLogRepository securityLogRepository,
IImageCompressor imageCompressor,
IOptions<AbpProfilePictureOptions> profilePictureOptions,
IApplicationInfoAccessor applicationInfoAccessor,
IdentityUserTwoFactorChecker identityUserTwoFactorChecker,
IDistributedCache<EmailConfirmationCodeCacheItem> emailConfirmationCodeCache,
IdentityErrorDescriber identityErrorDescriber,
IOptions<AbpRegisterEmailConfirmationCodeOptions> registerEmailConfirmationCodeOptions,
IIdentityUserRepository identityUserRepository)
: base(userManager, accountEmailer, phoneService, roleRepository, identitySecurityLogManager,
accountProfilePictureContainer, settingManager, identityOptions, securityLogRepository, imageCompressor,
profilePictureOptions, applicationInfoAccessor, identityUserTwoFactorChecker, emailConfirmationCodeCache,
identityErrorDescriber, registerEmailConfirmationCodeOptions)
{
IdentityUserRepository = identityUserRepository;
}
public override async Task<bool> VerifyPasswordResetTokenAsync(VerifyPasswordResetTokenInput input)
{
var user = await IdentityUserRepository.GetAsync(input.UserId, includeDetails: false);
return await UserManager.VerifyUserTokenAsync(
user,
UserManager.Options.Tokens.PasswordResetTokenProvider,
UserManager<IdentityUser>.ResetPasswordTokenPurpose,
input.ResetToken);
}
public override async Task ResetPasswordAsync(ResetPasswordDto input)
{
await IdentityOptions.SetAsync();
var user = await IdentityUserRepository.GetAsync(input.UserId, includeDetails: false);
(await UserManager.ResetPasswordAsync(user, input.ResetToken, input.Password)).CheckErrors();
await IdentitySecurityLogManager.SaveAsync(new IdentitySecurityLogContext
{
Identity = IdentitySecurityLogIdentityConsts.Identity,
Action = IdentitySecurityLogActionConsts.ChangePassword
});
}
}
hi Sandy
Our Angular team will provide a solution here soon.
Thanks.
ok, I will check the video and try again.
ok, I will share a new version code snippet
Thanks.
hi
It has no problem on my side. Can you show the problem in the demo project?
Video: https://www.transfernow.net/en/cld?utm_source=20250923ak7xJHn3
Thanks
Thanks. We will fix it asap.
Your ticket has been refunded.
hi
It seems the first login doesn't succeed.
Can you share the test project again?
Thanks.