protected void EmulateUserButton_Click(object sender, EventArgs e) { int userId = WebUtils.GetIntRequestParam("UserId", 0); User currentUser = CurrentUser; User emulatedUser = Data.User.Get(userId); if (emulatedUser.IsNull) { MessageLabel1.SetErrorMessage("User not found"); return; } //renew session api token if user not currently active if (!UserManager.APISessionIsValid(emulatedUser)) { UserManager.RenewSessionAPIToken(emulatedUser); } m_Logger.DebugFormat("User: {0} emulating: {1}, user id: {2}", CurrentUser.FullName, emulatedUser.FullName, emulatedUser.UserId); AuditLogManager.LogUserAction(CurrentUser, AuditUserAction.UserLogin, string.Format("Emulating: {0}", emulatedUser.FullName)); SessionInfo.Current.User = emulatedUser; SessionInfo.Current.UserSessionInfo.Reset(); SessionInfo.Current.AdminSessionInfo.Reset(); Login.SetupSessionForCurrentSessionUser(); AuditLogManager.LogUserAction(emulatedUser, AuditUserAction.UserLogin, string.Format("User being emulated by {0}", currentUser.FullName)); Response.Redirect("~/Default.aspx"); }