2011-10-27 72 views
2

我想通過IIS將訪問MVC站點中的路由限制爲使用Windows身份驗證的Intranet站點。在IIS中限制對MVC路由的訪問

我知道這可以通過控制器或操作上的Authorize屬性來完成,但我更願意使用IIS 7.5的授權規則功能,以便GUI(inet manager)爲管理員提供授予權限/限制訪問的基礎上。這可能嗎?

例如在默認路由配置中鎖定http://server/admin(使用Windows身份驗證進行身份驗證),但未向AdminController類或AdminController的Index操作添加Authorize屬性,但僅通過IIS管理器後部署。

+0

我知道你已經提到你不想使用Authorize屬性。您不希望授予組訪問權限,然後只管理該組中的人員的具體原因?例如:[Authorize(Roles = @「MVCAdminAccess」)] – Jesse

+0

在設計/編碼時間,我不知道組名。他們在我的控制之外進行管理和維護,並且擁有一個控制所有這些而不是「硬編碼」的GUI是很好的。 – Plymouth223

+0

誰說你需要硬編碼?沒有理由不能將組織形式的網絡配置? – Jesse

回答

2

堅持授權屬性以獲得最佳做法。授權規則的問題在於它是基於URL的,而在MVC中,多個URL有時可能會轉到同一地點,這就是爲什麼建議您儘可能在控制器級別保護而不通過URL。

+0

是的,但我認爲大多數網站地圖將以基於URL的安全性是完全可接受的解決方案的方式進行定義和隔離。此外,我不喜歡我在代碼中定義組的想法(特別是域,但如果基礎結構約定發生變化,也是組本身)。通過IIS保護它似乎是一種合理的方法。 – Plymouth223