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