我正在使用Umbraco CMS版本7的網站上工作。我正在使用NWebSec在網站上實施CSP標題。當有CSP違規時,NWebSec內置了可以引發.Net事件的功能。通常情況下,你會發現類似這樣的事件:如何讓Umbraco與NWebSec內置的CSP報告事件處理程序一起玩呢?
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事件處理程序在同一文件doens't工作。推測這是因爲它使用.Net事件處理程序的語法,而不是Umbraco用它來替代它。
如何訪問NWebSec引發的事件?
我最終走了一條不同的路線,使用更加標準的CSP報告結構和自定義路線,並使用mvc控制器處理它。但它看起來像你作爲一個umbraco應用程序接線nwebsec的答案是我失蹤使這項工作的一塊。謝謝。 – Necoras