diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccountPageModel.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccountPageModel.cs index f7a3e373c5..17cee43c5d 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccountPageModel.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/AccountPageModel.cs @@ -1,13 +1,19 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Extensions; using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using Volo.Abp.Account.Localization; using Volo.Abp.AspNetCore.ExceptionHandling; +using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Abp.ExceptionHandling; using Volo.Abp.Identity; +using Volo.Abp.MultiTenancy; using IdentityUser = Volo.Abp.Identity.IdentityUser; namespace Volo.Abp.Account.Web.Pages.Account @@ -21,12 +27,50 @@ namespace Volo.Abp.Account.Web.Pages.Account public IOptions IdentityOptions { get; set; } public IExceptionToErrorInfoConverter ExceptionToErrorInfoConverter { get; set; } + public ITenantResolveResultAccessor TenantResolveResultAccessor { get; set; } + + public IOptions AspNetCoreMultiTenancyOptions { get; set; } + + public IOptions MultiTenancyOptions { get; set; } + protected AccountPageModel() { LocalizationResourceType = typeof(AccountResource); ObjectMapperContext = typeof(AbpAccountWebModule); } + protected virtual bool SwitchTenant(Guid? tenantId) + { + if (MultiTenancyOptions.Value.IsEnabled && + TenantResolveResultAccessor.Result?.AppliedResolvers?.Contains(CookieTenantResolveContributor.ContributorName) == true) + { + if (CurrentTenant.Id != tenantId) + { + if (tenantId != null) + { + Response.Cookies.Append( + AspNetCoreMultiTenancyOptions.Value.TenantKey, + tenantId.ToString(), + new CookieOptions + { + Path = "/", + HttpOnly = false, + Expires = DateTimeOffset.Now.AddYears(10) + } + ); + } + else + { + Response.Cookies.Delete(AspNetCoreMultiTenancyOptions.Value.TenantKey); + } + + return true; + } + } + + return false; + } + protected virtual void CheckIdentityErrors(IdentityResult identityResult) { if (!identityResult.Succeeded) diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ResetPassword.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ResetPassword.cshtml.cs index 508f2d1447..7067e186ef 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ResetPassword.cshtml.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/ResetPassword.cshtml.cs @@ -1,14 +1,10 @@ using System; using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Extensions; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Options; -using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.Auditing; using Volo.Abp.Identity; -using Volo.Abp.MultiTenancy; using Volo.Abp.Validation; namespace Volo.Abp.Account.Web.Pages.Account @@ -53,49 +49,11 @@ namespace Volo.Abp.Account.Web.Pages.Account [DisableAuditing] public string ConfirmPassword { get; set; } - protected virtual ITenantResolveResultAccessor TenantResolveResultAccessor { get; } - - protected virtual AbpAspNetCoreMultiTenancyOptions AspNetCoreMultiTenancyOptions { get; } - - protected virtual AbpMultiTenancyOptions MultiTenancyOptions { get; } - - public ResetPasswordModel( - ITenantResolveResultAccessor tenantResolveResultAccessor, - IOptions aspNetCoreMultiTenancyOptions, - IOptions multiTenancyOptions) - { - TenantResolveResultAccessor = tenantResolveResultAccessor; - AspNetCoreMultiTenancyOptions = aspNetCoreMultiTenancyOptions.Value; - MultiTenancyOptions = multiTenancyOptions.Value; - } - public virtual Task OnGetAsync() { - if (MultiTenancyOptions.IsEnabled && - TenantResolveResultAccessor.Result?.AppliedResolvers?.Contains(CookieTenantResolveContributor.ContributorName) == true) + if (SwitchTenant(TenantId)) { - if (CurrentTenant.Id != TenantId) - { - if (TenantId != null) - { - Response.Cookies.Append( - AspNetCoreMultiTenancyOptions.TenantKey, - TenantId.ToString(), - new CookieOptions - { - Path = "/", - HttpOnly = false, - Expires = DateTimeOffset.Now.AddYears(10) - } - ); - } - else - { - Response.Cookies.Delete(AspNetCoreMultiTenancyOptions.TenantKey); - } - - return Task.FromResult(Redirect(HttpContext.Request.GetEncodedUrl())); - } + return Task.FromResult(Redirect(HttpContext.Request.GetEncodedUrl())); } return Task.FromResult(Page());