【发布时间】:2012-05-01 08:51:51
【问题描述】:
我想从 ASP .NET 应用程序记录到应用程序事件日志。我想先调用 EventLog.SourceExists 来判断一个事件源是否存在,如果不存在则创建它。
如 MSDN (http://msdn.microsoft.com/en-us/library/6s7642se.aspx) 中所述: "要在 Windows Vista 及更高版本或 Windows Server 2003 中搜索事件源,您必须具有管理权限。 此要求的原因是必须搜索所有事件日志,包括安全性,以确定事件源是否唯一。从 Windows Vista 开始,用户无权访问安全日志;因此,会引发 SecurityException。"
在我的例子中,NetworkService 用户没有管理员权限,因此 EventLog.SourceExists 会抛出 MSDN 中记录的 SecurityException。
我的问题是:我怎样才能对 EventLog.SourceExists 的调用进行防御性编码? 在调用 EventLog.SourceExists 之前,我可以先调用一些东西来检查我是否有权搜索事件源?
或者是我捕获 SecurityException 并在 catch 块内采取其他操作的唯一选择,例如登录到现有的事件源,例如资料
谢谢
凯文
【问题讨论】:
标签: asp.net permissions event-log