Esempio n. 1
0
        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");
        }