【问题标题】:Security Issues Writing to Event Log with My.Application.Log.WriteException使用 My.Application.Log.WriteException 写入事件日志的安全问题
【发布时间】:2009-08-04 21:55:47
【问题描述】:

我正在处理 WinForms 应用程序中的 Application.UnhandledException 事件,并且需要记录那里捕获的异常。我的 app.config 设置为将异常记录到 FileLog 和 EventLog。

问题是,当以非管理员用户身份运行时,由于 SecurityException,无法写入 EventLog - 我收到消息“找不到源,但无法搜索部分或全部事件日志。”

我明白为什么 - 用户没有创建 EventLog 源的权限,但问题是应该如何创建这个源?在我看来,我可以:

1) 使用我的安装程序创建 EventLog 源,因为它是以管理员身份运行的。如何做到这一点?

2) 通过以某种方式提升权限从我的应用程序中创建?但这会在 Vista 上给出 UAC 提示。

在客户端计算机上创建 Windows 应用程序事件日志源的最佳做法是什么?

谢谢

【问题讨论】:

    标签: vb.net logging


    【解决方案1】:

    执行此操作的最常见方法是您的选项 1。

    如何操作取决于您的安装程序包,但您需要:

    1. 确保您的安装程序以提升的权限运行。
    2. 将单个条目写入该事件日志源,或者
    3. 直接为您的事件源创建注册表项

    当您的安装程序写入事件日志时,将创建源并可供非管理员使用。

    使用 WiX,(Windows Installer Xml)您可以参考 this post 直接创建事件源注册表项。

    【讨论】:

    猜你喜欢
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 2017-03-30
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多