Browse Source

Merge pull request #7814 from abpframework/maliming/AbpSecurityStampValidator

Change current tenant in AbpSecurityStampValidator.
pull/7856/head
Halil İbrahim Kalkan 6 years ago
committed by GitHub
parent
commit
101d3549c4
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 20
      modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo/Abp/Identity/AspNetCore/AbpSecurityStampValidator.cs

20
modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo/Abp/Identity/AspNetCore/AbpSecurityStampValidator.cs

@ -4,29 +4,41 @@ using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Uow; using Volo.Abp.Uow;
namespace Volo.Abp.Identity.AspNetCore namespace Volo.Abp.Identity.AspNetCore
{ {
public class AbpSecurityStampValidator : SecurityStampValidator<IdentityUser> public class AbpSecurityStampValidator : SecurityStampValidator<IdentityUser>
{ {
protected ITenantConfigurationProvider TenantConfigurationProvider { get; }
protected ICurrentTenant CurrentTenant { get; }
public AbpSecurityStampValidator( public AbpSecurityStampValidator(
IOptions<SecurityStampValidatorOptions> options, IOptions<SecurityStampValidatorOptions> options,
SignInManager<IdentityUser> signInManager, SignInManager<IdentityUser> signInManager,
ISystemClock systemClock, ISystemClock systemClock,
ILoggerFactory loggerFactory) ILoggerFactory loggerFactory,
ITenantConfigurationProvider tenantConfigurationProvider,
ICurrentTenant currentTenant)
: base( : base(
options, options,
signInManager, signInManager,
systemClock, systemClock,
loggerFactory) loggerFactory)
{ {
TenantConfigurationProvider = tenantConfigurationProvider;
CurrentTenant = currentTenant;
} }
[UnitOfWork] [UnitOfWork]
public override Task ValidateAsync(CookieValidatePrincipalContext context) public override async Task ValidateAsync(CookieValidatePrincipalContext context)
{ {
return base.ValidateAsync(context); var tenant = await TenantConfigurationProvider.GetAsync(saveResolveResult: false);
using (CurrentTenant.Change(tenant?.Id, tenant?.Name))
{
await base.ValidateAsync(context);
}
} }
} }
} }

Loading…
Cancel
Save