#c# #outlook #registry #vsto #outlook-addin
Вопрос:
Я пытаюсь записать в журнал событий из плагина VSTO Outlook, но я не понял, как это сделать.
Я пробовал это несколькими разными способами, и я все еще не уверен, что у меня возникли проблемы с разрешениями безопасности между плагином Outlook и журналом событий или что-то связанное с кодом.
Я попробовал использовать 2 разных фрагмента кода. Это моя тестовая работа, и даже она не пишет:
EventLog myLog = new EventLog("Application");
myLog.Source = "ReportPhishing";
myLog.WriteEntry("Reporting Email");
Это код, который я в конечном счете пытаюсь добавить в:
string sourceName = "ReportPhishing";
//Defines who was the sender email
string SenderEmail = obj_CurrentItem.SenderEmailAddress;
//Defines who the end receiving email address is
string ReceiverEmail = obj_CurrentItem.ReceivedByName;
//Defines the schema used to pull the header information out of the email
string EmailHeaders = obj_CurrentItem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001E");
//Defines FileName as from the subject line
string FileName = obj_CurrentItem.Subject;
//Specifies the main event context
string eventSubject = "Reported Phishing Email";
//Creates the payload information for sending to the local eventlog
string eventPayload = eventSubject "%n%nSenderEmail: " SenderEmail "%n%nReceivingEmail: " ReceiverEmail "%n%nSubject: " FileName "%n%nHeaders: " EmailHeaders;
//string eventpayload = @"<EventData><Data Name=""SenderEmail"">" SenderEmail "</Data><Data Name=""ReceivingEmail"">" SenderEmail "</Data><Data Name=""Subject"">" FileName "</Data><Data Name=""Headers"">" EmailHeaders "</Data></EventData>";
EventLog.WriteEntry(sourceName, eventPayload, EventLogEntryType.Error);
Что я пробовал:
- Я попытался создать источник событий из плагина, но это никогда не работало, так как он не выполнялся бы без разрешений администратора.
- Я вручную создал источник через реестр, но это, похоже, тоже не сработало.
- Я удалил запись в реестре и создал исходный код с помощью командной строки с повышенными
eventcreate
правами . Создав его с помощью командной строки, я подтвердил, что командная строка без повышенных прав все еще может записывать в источник события
- Прочитайте ряд других сообщений StackOverflow в журнале событий. Никто на самом деле не обсуждал аспект плагина. Большинство сосредоточено на проблемах с разрешениями или неправильной реализации примеров кода MS.
- Создал приложение базовой формы, которое создало событие журнала. Похоже, это работает с моим приведенным выше примером кода:
Похоже, что в функциональности плагина VSTO есть что-то, что препятствует ведению журнала событий. Я не знаю, куда идти дальше.
Комментарии:
1. Согласно документам, вы не можете создать источник событий без повышенных привилегий. См. Примечания к журналу событий. Создайте источник событий. Может быть, вы можете использовать некоторые зарегистрированные источники из Outlook (если таковые имеются)?
2. Правильный. Вот почему я создал источник событий с помощью командной строки. Это № 3 выше. Это также то, как я смог написать через не повышенный CMD в источник событий.
3. И все еще не можете писать с этим источником из вашего плагина vsto?
4. Да, я ничего не получаю. Я попытался повысить свой кругозор до администратора, но все равно это ничего не изменило. Я склоняюсь к тому, что это проблема с кодированием или какой-то элемент управления Windows/MS, который по своей сути не позволяет плагину записывать в журнал событий.
5. Просто идея: вы уверены, что ваш код вызывается в плагине VSTO? Есть ли у вас какие-нибудь исключения? Что делать, если вы используете «Outlook» в качестве источника?