I want to write these values in the security event log:
Console.WriteLine("Level: {0}", eventInstance.LevelDisplayName);
Console.WriteLine("Date: {0}", eventInstance.TimeCreated);
Console.WriteLine("Forrás: {0}", eventInstance.ProviderName);
Console.WriteLine("Event id: {0}", eventInstance.Id);
Console.WriteLine("Task: {0}", eventInstance.TaskDisplayName);
string sSource;
string sLog;
string sEvent;
sSource = eventInstance.ProviderName;
sLog = "Security";
sEvent = eventInstance.FormatDescription();
if (!EventLog.SourceExists(sSource))
EventLog.CreateEventSource(sSource, sLog);
EventLog.WriteEntry(sSource, sEvent);
EventLog.WriteEntry(sSource, sEvent,
EventLogEntryType.Warning, eventInstance.Id);
EventLog.WriteEntry(sSource, sEvent);
EventLog.WriteEntry(sSource, sEvent,
EventLogEntryType.Warning, eventInstance.Id);
I have an exception this line:
if (!EventLog.SourceExists(sSource))
Exception:
Cannot open log for source „Security”. You may not have write access.
But when I change the Security
to another it works, but the just the application event log contains the values.
Administrative privileges are required to read the Security Log so the
SourceExists
call will fail if not run under that context.Additionally only LSA can write to the security log & it does not support types such as "Warning", only audit events.
Take a look at; http://msdn.microsoft.com/en-gb/magazine/cc163718.aspx