Outlook插件可以写入系统事件日志吗?

use*_*925 7 c# security outlook vsto event-log

我有一个用VSTO 2010开发的outlook插件,我想写一些事件记录.在调试时,我可以通过简单地执行以下操作来实现此功能:

if (!EventLog.SourceExists(ADDIN_FRIENDLY_NAME))
{
    EventLog.CreateEventSource(ADDIN_FRIENDLY_NAME, null);
}
EventLog.WriteEntry(ADDIN_FRIENDLY_NAME, message, EventLogEntryType.Warning);
Run Code Online (Sandbox Code Playgroud)

问题是加载项没有管理员权限来读取日志的发布版本.我发现一些文章谈到在安装过程中创建EventLog源代码,但我使用的是ClickOnce,似乎没有办法做到这一点.此外,有人谈到创建一个单独的DLL,然后调用InstallUtil该DLL来创建源.这对我不起作用,因为这仍然需要管理员权限.

是否可以使用Outlook的安全级别运行加载项?我在事件日志中看到Outlook的消息,因此它必须具有足够的权限才能执行此操作.

Dav*_*rdi 1

您可以尝试使用本文中提出的解决方案以管理员身份运行 click 一次,但我认为这不是一个好的解决方案。

也许更好的解决方案是在您的单击一次包中包含一个标准的 .msi 设置,您可以在第一次安装插件时执行该设置。这个msi只是创建事件源。

关于你的问题:

是否可以使用 Outlook 的安全级别运行加载项?

我不认为您的加载项使用不同的安全级别运行,但您可能启用了 UAC,因此如果您是管理员,也无法执行管理操作。