Activities of "liangshiwei"

Hi,

Yes, we have an HTTP API you can use to send the reset password code email.

You can also send it manually:


// inject IdentityUserManager and IAccountEmailer service.
protected IdentityUserManager UserManager { get; }
protected IAccountEmailer AccountEmailer { get; }

//Find a user
var resetToken = await UserManager.GeneratePasswordResetTokenAsync(user);
await AccountEmailer.SendPasswordResetLinkAsync(user, resetToken, input.AppName, input.ReturnUrl, input.ReturnUrlHash);

Hi,

Yes, you can. but I don't know what's blocking you, can you explain it in detail? thanks.

The reason is that you are using the wrong redirect URL.

Should be http://localhost:4200

https://us05web.zoom.us/j/83932283381?pwd=Q0kvSXV2L3YvdTB1bDdBUkZhcWJ2Zz09

The authserver project.

The meeting has expired. I will check this problem and get back to you.

https://us05web.zoom.us/j/81240656843?pwd=NC85MkZlekF0ZUtYY2g2VEpFbG5IQT09

hide tenant switch

You can remove the CookieTenantResolveContributor

Configure<AbpTenantResolveOptions>(options =>
{
    options.TenantResolvers.RemoveAll((x => x.Name == CookieTenantResolveContributor.ContributorName));
});

the system directoly knows which tenant

You can custom the LoginModel. for example:

[ExposeServices(typeof(LoginModel))]
public class MyLoginModel : OpenIddictSupportedLoginModel
{
    private readonly ITenantRepository _tenantRepository;
    public MyLoginModel(
        IAuthenticationSchemeProvider schemeProvider,
        IOptions<AbpAccountOptions> accountOptions,
        IAbpRecaptchaValidatorFactory recaptchaValidatorFactory, 
        IAccountExternalProviderAppService accountExternalProviderAppService, 
        ICurrentPrincipalAccessor currentPrincipalAccessor, 
        IOptions<IdentityOptions> identityOptions, 
        IOptionsSnapshot<reCAPTCHAOptions> reCaptchaOptions,
        AbpOpenIddictRequestHelper openIddictRequestHelper,
        ITenantRepository tenantRepository) :
        base(schemeProvider, accountOptions, recaptchaValidatorFactory, accountExternalProviderAppService, currentPrincipalAccessor, identityOptions, reCaptchaOptions, openIddictRequestHelper)
    {
        _tenantRepository = tenantRepository;
    }

    public async override Task<IActionResult> OnPostAsync(string action)
    {
        using (CurrentTenant.Change(await FindTenantByUser()))
        {
            return await base.OnPostAsync(action);
        }
       
    }

    private async  Task<Guid?> FindTenantByUser()
    {
        var tenants = await _tenantRepository.GetListAsync();
        foreach (var tenant in tenants)
        {
            using(CurrentTenant.Change(tenant.Id))
            {
                ///...Find User and return the TenantId
            }
        }

        return null;
    }
}

Hi,

You can check the Azure document: https://learn.microsoft.com/en-us/azure/devops/pipelines/ecosystems/dotnet-core?view=azure-devops&tabs=dotnetfive#publish-artifacts-to-azure-pipelines

Yes, it works.

Showing 4061 to 4070 of 6693 entries
Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 17, 2025, 07:08
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.