Проверка разрешений на запись в журнал событий без записи - PullRequest
1 голос
/ 21 февраля 2011

Мне нужно проверить, есть ли у пользователя права на запись в журнал событий. Мое решение сейчас состоит в том, чтобы написать тестовое сообщение в журнале и впоследствии удалить его (чтобы журнал не испортился, так как проверка разрешений часто вызывается (каждые 3-5 минут) какой-то проверкой здоровья). обслуживание:

const string log = "MyApplicationLog";
const string source = "PermissionCheck";
EventLog evLog;

try
{
    if (!EventLog.SourceExists(source))
    {
        EventLog.CreateEventSource(source, log);
    }
    evLog = new EventLog();
    evLog.Source = source;
    evLog.WriteEntry("PermissionCheck Test Message");
    return true;
}
finally
{
    //remove the check messages:
    if (EventLog.Exists(log))
    {
        EventLog.Delete(log);
    }
}

Есть ли возможность проверить разрешения без фактической записи в журнал?

Заранее спасибо,

ElKunzo

1 Ответ

1 голос
/ 21 февраля 2011

Да, AFAIK, используя CAS.Украсьте требуемых членов с атрибутом EventLogPermission, оттуда вы можете контролировать, должны ли вы иметь доступ, только желаемый и т. Д.

Это может повлечь за собой небольшое дальнейшее приключение в самом CAS, однако,если вы незнакомы.

MSDN Link .

...