2011-11-18 59 views
13

我一直在試圖遵循這個博客讓區工作的多個認證:ASP.NET MVC 3個區域,並在web.config中

http://mstechkb.blogspot.com/2010/10/areas-in-aspnet-mvc-20.html

在博客文章,它確定有認證的能力每區設置,如:

<location path="Area1"> 
    <system.web> 
    <authentication mode="Windows" /> 
    <authorization> 
    <allow roles="role1,role2"/> 
    <deny users="*"/> 
    </authorization> 
</system.web> 
</location> 

然而,當我嘗試在Visual Studio 2010中一個新的項目,以創建這個我得到以下錯誤,當我運行:

在應用程序級別之外使用註冊爲allowDefinition ='MachineToApplication'的節是錯誤的。此錯誤可能是由於虛擬目錄未被配置爲IIS中的應用程序。

從我可以看到這是因爲你不能指定一個身份驗證元素,除非它在頂級web.config中。

因此,有可能做博客文章所說的內容?您可以在web.config中的位置元素中使用具有身份驗證元素的區域嗎?

+0

嗨,你有沒有找到一種方法讓它工作?你能在這裏回答這個問題嗎?謝謝 –

+0

我沒有像博客建議的那樣。我的臨時解決方案是將Web應用程序分爲兩個項目,每個驗證類型一個。儘管我儘可能地將其移植到常見的項目中,但這並不理想,因爲它最終有一些重複的代碼和配置。該項目由於其他原因不久後被放棄,所以我從未重新討論過這個問題。 – eyesnz

回答

-2

我學到了關於ASP.NET MVC的知識,將授權規則設置爲應用於單個控制器總是最好,因爲考慮到路由系統的工作方式,它更安全,更充分。

+0

這不會更改身份驗證機制,只是授權 - 即此操作/控制者需要對這些角色/用戶進行身份驗證訪問 –