公共的Controler,是给非授权的用户访问
issue:
我使用的環境是Vs2012 , 創建了MVC4的工程,然后在工程里面Webconfig, 添加了訪問限制
? ? <authentication mode="Forms"> ? ? ? <forms loginUrl="~/Account/Login" timeout="2880" /> ? ? </authentication>
? ? <authorization> ? ? ? <deny users="?" /> ? ? ? <allow users="*" /> ? ? </authorization>
設置所有訪問都拒絕匿名訪問,只有授權用戶才能訪問,非授權的訪問會跳轉到登錄頁面 ~/Account/Login?
然后問題是,我想加一個公共的Controler,是給非授權的用戶訪問,我給那個Controler加上
[AllowAnonymous] 屬性,允許匿名,但是很奇怪,所有訪問這個匿名的Controler還是會跳轉到Login,除非你登錄了授權,才可以打開這個匿名的控制器,這個[AllowAnonymous]完全不起作用。
solution:
在BaseControler里面加一個[Authorize],所有要驗證的頁面都繼承BaseControler, 不需要驗證的就不繼承。然后將WebConfig的權限控制限制去掉。
備注:
? 使用AllowAnonymous屬性是用來跳過授權的?Authorize attribute?執行。標有使用AllowAnonymous操作方法將始終可以訪問所有用戶,包括匿名用戶。一般下面這三個特性是伴隨著使用的:????
??????? AuthorizeAttribute:表示一個特性,該特性用于限制調用方對操作方法的訪問。
??????? AllowAnonymousAttribute:表示一個特性,該特性用于標記在授權期間要跳過 AuthorizeAttribute 的控制器和操作。
??????? InitializeSimpleMembershipAttribute:這個特性是來初始化數據庫成員關系的,后面會講到。
???? ? ?請查看這個鏈接了解詳細信息:? Asp.net Mvc4默認權限詳細
轉載于:https://www.cnblogs.com/happy-Chen/p/3607190.html
總結
以上是生活随笔為你收集整理的公共的Controler,是给非授权的用户访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【More Effective C++】
- 下一篇: 【转】测试过程管理案例6---如何做项目