1

我正在開發一個網站使用asp.net mvc與MySQL,我需要做一個簡單的限制區域,爲用戶更新網站的一些信息。所以,我在mvc應用程序中創建了一個名爲「Admin」的區域,並且我知道如何使用Forms身份驗證和Autorize屬性來保護它!它工作正常,但在我所在區域的每個控制器中,我必須設置Autorize屬性來保護它們。有沒有辦法保護Web.config中的所有區域?我怎樣才能做到這一點?表單身份驗證(限制區域)

感謝

乾杯

回答

5

一定不能在MVC應用程序中使用基於位置的Web.config授權。這樣做會導致您網站的安全漏洞。

獲得您要查找的行爲的最簡單方法是擁有一個AdminBaseController,該AdminBaseController上有一個[Authorize]屬性,然後讓您的Admin區域中的每個控制器都直接爲此類型的子類。該屬性將從基本類型流到子類型。

+0

這是唯一的方法嗎?由於這個解決方案看起來不太優雅,我需要確保我的所有控制器都是基礎控制器的子類。我可能只需將所需的屬性添加到所有控制器。 – 2013-05-02 04:35:34

+0

@RosdiKasim,如果需要,您可以將授權篩選器添加到全局篩選器列表中。然後每個控制器自動獲取它。如果您這樣做,請將[AllowAnonymous]屬性放在單獨的控制器上或採取行動讓它們選擇退出全局授權過濾器。 – Levi 2013-05-09 16:43:30

+0

你能告訴我爲什麼會導致漏洞嗎? – vmg 2015-06-04 18:21:01

0

有點過你的問題,你要使用的Web.config,但是你可以使用PostSharp(一個面向方面的架構)對方法注入屬性。

+0

好人,謝謝aswer ...我們將研究這種消化! – 2010-06-11 16:50:05