Класс ServiceBase не записывает SessionLogoff при перезапуске Windows - PullRequest
0 голосов
/ 27 мая 2019

Я создал службу Windows, которая записывает каждый сеанс Windows.Когда машина перезапущена , она не запускает событие SessionLogOff, а SessionLogOn.Моя идея состоит в том, чтобы автоматически регистрировать время активного сеанса пользователя для некоторых целей аудита.Машина является одной рукой пользователя.Ниже приведен фрагмент кода:

 public class EventTrackerWindowsService : ServiceBase
    {

   protected override void OnSessionChange(SessionChangeDescription changeDescription)
        {
            CustomLogger.LogAuditTrail($"SessionEvent: [{changeDescription.Reason}]");
           //Some Other codes
            switch (changeDescription.Reason)
                {
                    case SessionChangeReason.ConsoleConnect:
                    case SessionChangeReason.ConsoleDisconnect:
                    case SessionChangeReason.RemoteConnect:
                    case SessionChangeReason.RemoteDisconnect:
                    case SessionChangeReason.SessionRemoteControl:
                               CustomLogger.LogAuditTrail($"Session {changeDescription.Reason} is Excluded. SessionID: [{sessionID}] Username: [{username}]");
                        break;

                    default:// SessionLock  && SessionUnlock
                        CustomLogger.LogAuditTrail($"SessionID: [{sessionID}]  Username: [{ username }]");
                        PostSessionDetails(changeDescription);
                        break;
                 }
//Some other codes....

        }
    }
//Some other codes....

Есть ли другой обходной путь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...