CreateImpersonationService(IUserInfo testUser, ImpersonationOptions options = null) { options ??= new ImpersonationOptions(); var httpContextAccessor = new FakeHttpContextAccessor(testUser?.IsUserRecognized == true ? testUser.UserName : null); var dataProtectionProvider = new FakeDataProtectionProvider(); BaseAuthentication baseUserInfo = new BaseAuthentication(new RhetosAspNetCoreIdentityUser(httpContextAccessor)); var log = new List <string>(); void logMonitor(EventType eventType, string eventName, Func <string> message) => log.Add($"[{eventType}] {eventName}: {message()}"); var logProvider = new ConsoleLogProvider(logMonitor); var impersonationService = new ImpersonationService(httpContextAccessor, dataProtectionProvider, logProvider, options ?? new ImpersonationOptions(), baseUserInfo); return(impersonationService, httpContextAccessor, log); }
public HomeController(ImpersonationService impersonationService, IWebHostEnvironment environment) { _impersonationService = impersonationService; _environment = environment; }