我正在开发一个使用 Umbraco CMS 版本 7 的网站。我正在使用 NWebSec 在网站上实现 CSP 标头。NWebSec 内置了在发生 CSP 违规时引发 .Net 事件的功能。通常你会用这样的东西来捕捉那个事件:
protected void NWebSecHttpHeaderSecurityModule_CspViolationReported(object sender, CspViolationReportEventArgs e)
{
var report = e.ViolationReport;
var serializedReport = JsonConvert.SerializeObject(report.Details);
// Do a thing with the report
}
在 Global.asax.cs 文件中。但据我所知,Umbraco 抢占了 Global.asax.cs 文件,它吃掉了任何抛出的事件。我有一个包含一些自定义事件处理程序的文件,例如:
public void OnApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
处理通常在 Global.asax.cs 文件中的标准应用程序启动代码,但将 NWebSec 事件处理程序放在同一文件中不起作用。大概是因为它使用的是 .Net 事件处理程序语法,而不是 Umbraco 替换它的任何东西。
如何访问 NWebSec 引发的事件?