Запись в журнал событий из плагина Outlook VSTO

#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);
 

Что я пробовал:

  1. Я попытался создать источник событий из плагина, но это никогда не работало, так как он не выполнялся бы без разрешений администратора.
  2. Я вручную создал источник через реестр, но это, похоже, тоже не сработало.
  3. Я удалил запись в реестре и создал исходный код с помощью командной строки с повышенными eventcreate правами . Создав его с помощью командной строки, я подтвердил, что командная строка без повышенных прав все еще может записывать в источник события

введите описание изображения здесь

  1. Проверенные разрешения из реестра (я добавил намного больше разрешений на всякий случай)введите описание изображения здесь

введите описание изображения здесь

  1. Прочитайте ряд других сообщений StackOverflow в журнале событий. Никто на самом деле не обсуждал аспект плагина. Большинство сосредоточено на проблемах с разрешениями или неправильной реализации примеров кода MS.
  2. Создал приложение базовой формы, которое создало событие журнала. Похоже, это работает с моим приведенным выше примером кода:введите описание изображения здесьвведите описание изображения здесь

Похоже, что в функциональности плагина VSTO есть что-то, что препятствует ведению журнала событий. Я не знаю, куда идти дальше.

Комментарии:

1. Согласно документам, вы не можете создать источник событий без повышенных привилегий. См. Примечания к журналу событий. Создайте источник событий. Может быть, вы можете использовать некоторые зарегистрированные источники из Outlook (если таковые имеются)?

2. Правильный. Вот почему я создал источник событий с помощью командной строки. Это № 3 выше. Это также то, как я смог написать через не повышенный CMD в источник событий.

3. И все еще не можете писать с этим источником из вашего плагина vsto?

4. Да, я ничего не получаю. Я попытался повысить свой кругозор до администратора, но все равно это ничего не изменило. Я склоняюсь к тому, что это проблема с кодированием или какой-то элемент управления Windows/MS, который по своей сути не позволяет плагину записывать в журнал событий.

5. Просто идея: вы уверены, что ваш код вызывается в плагине VSTO? Есть ли у вас какие-нибудь исключения? Что делать, если вы используете «Outlook» в качестве источника?