在ASP.NET MVC項目中,通常都要使用身份驗證和權限控制,但總有部分網頁是能夠匿名訪問的。使用AllowAnonymous屬性就能夠指定須要匿名訪問的控制器,從而跳過身份驗證。網絡
可是今天卻遇到一個AllowAnonymous屬性失效的問題,致使聲明瞭該屬性控制器的操做方法沒法匿名訪問,須要登錄後纔可訪問。後通過排查,是因爲配置文件屬性設置的問題。函數
通常是這樣聲明這個屬性的:post
[AllowAnonymous]
public ActionResult Index() { return View(); }
聲明瞭容許匿名訪問後,用戶訪問該控制器下的Index操做方法時,就無需進行身份驗證了網站
(PS:匿名屬性啓用的前提是網站啓用了form身份驗證)。spa
可是若是有發現聲明瞭該屬性後,卻沒法訪問屬性設置下的Action操做方法,反而跳轉到身份驗證的登錄頁面。這個時候能夠按下面步驟排除問題:code
<authorization> <deny users="?" /> </authorization>
將配置文件的此段配置刪除後,就能夠正常的匿名訪問有聲明容許匿名訪問屬性的Action操做方法了。orm
另外要說的一點,若是在ASP.NET MVC中已經使用了form身份驗證,那麼最好不要在配置文件中設置authorization元素,身份驗證控制應該使用Authorize屬性和AllowAnonymous屬性。xml
做者:十有三繼承
出處:http://shiyousan.com/post/635406153786208233事件
歡迎轉載本文,本文版權歸做者全部,轉載請聲明出處或保留此段聲明。^_^請尊重他人勞動成果,共建美好的網絡環境。