代码之家  ›  专栏  ›  技术社区  ›  Ryan Michela

使用自定义应用程序池帐户从ASP.NET写入Windows事件日志

  •  4
  • Ryan Michela  · 技术社区  · 15 年前

    我正在尝试从ASP.NET写入Windows事件日志。应用程序池正在域帐户而不是网络服务下运行。

    我已经把所有的事情都安排在我的开发环境中了,但是有一个陷阱。因为应用程序池是作为域帐户运行的,所以我必须添加 (A;;0x0002;;;AU) Application\CustomSD 允许经过身份验证的用户访问事件日志的注册表项。这在我的开发盒上很好,但在生产服务器上却很普通。(他们说登记处没有改动。找到另一种方法。)

    据我所知,Windows Server 2K3 SP2上的默认事件日志只允许使用 LOGON32_LOGON_INTERACTIVE , LOGON32_LOGON_BATCH LOGON32_LOGON_SERVICE 在用户会话上设置的标志。

    是否有方法将这些标志之一添加到应用程序池的登录?IIS在启动应用程序池时不设置标志。我看过用 LogonUser 创建一个带有正确标志的临时安全上下文,但这需要在某个地方存储一个密码,如果可能的话,我希望避免这种情况。

    有关如何允许IIS使用自定义应用程序池帐户写入事件日志而不修改Windows Server 2K3 SP2上的注册表的任何想法?

    编辑:由于安全限制,我也无法将应用程序池帐户添加到本地管理员组。

    资源
    Using programmatic Impersonation from an ASP.NET Page
    Allowing impersonated accounts to write to your custom event log

    1 回复  |  直到 15 年前
        1
  •  2
  •   Anders Fjeldstad    15 年前

    如果在第一次尝试写入之前仅创建/注册了事件源,则帐户应该能够写入事件日志。创建源需要管理权限,但写入不需要。

    作为 documentation page 对于 EventLog 类建议,应在安装应用程序期间创建和配置事件源。