我正在尝试从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