我正在構建一個ASP.NET MVC Web應用程序,並試圖限制對頁面的訪問。限制對頁面的訪問但不能在ASP.NET MVC中啓動頁面
我指定我想使用窗體身份驗證在我的web.config:
<system.web>
...
<authentication mode="Forms">
<forms loginUrl="~/login" timeout="20" protection="All" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
...
</system.web>
這將拒絕訪問的所有頁面,但我想打一些網頁公開。我也可以在Web.config中做到這一點:
<location path="about-us">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="contact-us">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
…
這工作都很好。問題在於開始頁面,更準確地說,當用戶轉到「http://www.mydomain.com/」時,沒有指定進一步的路徑。我怎樣才能指定這個頁面應該公開?
我試過了一些變化,但nothings似乎工作。我總是得到一個錯誤:
沒有路徑
<location>
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
空路徑
<location path="">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
點
<location path=".">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
Slash
<location path="/">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
有什麼建議嗎?
感謝回覆獵人,我會檢查出Authorize屬性。雖然我更喜歡如果我可以用屬性來做同樣的事情,就像我試圖用Web.config做的那樣,即需要授權所有控制器和動作作爲默認值,然後爲單個控制器或動作制定例外。我的大部分頁面都會受到限制,我真的不想忘記限制某些東西...... – haagel
在這種情況下,我將使用'[Authorize]'屬性創建一個'BaseController'類,然後使用'[AllowAnonymous] '關於你想要訪問的方法。 – hunter
很棒!謝謝獵人! :) – haagel