我讀了幾篇文章,提到您應該讓所有控制器都從具有[Authorize]
屬性的父類派生,以便不會在您的站點中留下安全漏洞。 (例如:article)安全ASP.NET MVC 3網站
但是,所有控制器都已從父控制器派生,該控制器沒有[授權]屬性。如果不必爲每個控制器添加屬性,強制執行此建議的最佳方式是什麼?
我讀了幾篇文章,提到您應該讓所有控制器都從具有[Authorize]
屬性的父類派生,以便不會在您的站點中留下安全漏洞。 (例如:article)安全ASP.NET MVC 3網站
但是,所有控制器都已從父控制器派生,該控制器沒有[授權]屬性。如果不必爲每個控制器添加屬性,強制執行此建議的最佳方式是什麼?
的MVC3(也可能是2我不記得了),你可以使用全局鉤子一樣:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
protected void Application_Start()
{
RegisterGlobalFilters(GlobalFilters.Filters);
}
我認爲這是你已經找到了一個相當不錯的文章。如果你仔細閱讀它,它也解釋了MVC3更容易,因爲你可以使用全局過濾器而不是基類。甚至有一個代碼示例如何全局應用授權屬性。然後,它甚至解釋了一個很好的解決方案,當你不想應用授權屬性(例如登錄/註冊頁面)時。 –
我會再讀一遍。我似乎忽略了一些重要的細節。 – Phil
@菲爾,這是一篇很棒的文章,我已經將它實現到了我的項目中。我的問題是你有多少個控制器?看起來很容易將它添加到您的控制器級別,然後根據需要在方法級別實現更好的糧食安全性。只是我的兩分錢。 –