我正在使用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
}
Run Code Online (Sandbox Code Playgroud)
在Global.asax.cs文件中.但据我所知,Umbraco抢占了Global.asax.cs文件,它可以播放任何被抛出的事件.我有一个文件,其中包含一些自定义事件处理程序,如:
public void OnApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
Run Code Online (Sandbox Code Playgroud)
处理通常在Global.asax.cs文件中的标准应用程序启动代码,但是将NWebSec事件处理程序放在同一个文件中并不起作用.大概是因为它使用.Net事件处理程序语法而不是Umbraco替换它的任何东西.
如何访问NWebSec抛出的事件?