Class ImpersonationService
Implementation of user impersonation using session storage.
public class ImpersonationService : IImpersonationService
- Inheritance
-
ImpersonationService
- Implements
- Inherited Members
Constructors
ImpersonationService(IHttpContextAccessor, UserManager<ApplicationUser>, SignInManager<ApplicationUser>, ILogger<ImpersonationService>)
public ImpersonationService(IHttpContextAccessor httpContextAccessor, UserManager<ApplicationUser> userManager, SignInManager<ApplicationUser> signInManager, ILogger<ImpersonationService> logger)
Parameters
httpContextAccessorIHttpContextAccessoruserManagerUserManager<ApplicationUser>signInManagerSignInManager<ApplicationUser>loggerILogger<ImpersonationService>
Properties
ImpersonatedUserId
Gets the impersonated user ID if impersonating, null otherwise.
public int? ImpersonatedUserId { get; }
Property Value
- int?
IsImpersonating
Checks if the current session is an impersonation session.
public bool IsImpersonating { get; }
Property Value
OriginalAdminId
Gets the original admin user ID if impersonating, null otherwise.
public int? OriginalAdminId { get; }
Property Value
- int?
Methods
StartImpersonationAsync(int, int)
Starts impersonating a user. Stores the original admin ID in session.
public Task<bool> StartImpersonationAsync(int adminUserId, int targetUserId)
Parameters
Returns
StopImpersonationAsync()
Stops impersonation and restores the original admin session.
public Task<bool> StopImpersonationAsync()