2009-10-29 90 views
2

我在我的控制器上有一個自定義授權屬性,它不會在過期的ajax請求上調用。 我正在使用表單身份驗證,並通過$ .ajax(jQuery)調用控制器方法。 ajax請求返回我的登錄頁面,我似乎無法攔截此頁面。自定義授權屬性不工作過期ajax請求

謝謝。

更新: 我想通了,爲什麼:我評論的授權部在我的web.config像如下:

<authentication mode="Forms"> 
     <forms loginUrl="/Login" timeout="1" slidingExpiration="false"/> 
    </authentication> 
    <!--<authorization> 
     <deny users="?"/> 
    </authorization>--> 

現在,即使到期後,我的授權濾鏡被調用。事實證明,Web.config授權規則優先於授權過濾器。

+0

我花了三個小時費盡在這一個我的大腦。甚至沒有考慮評論代碼。 MVC 5工作得很好。 – David

回答

4

不要返回401未經授權。 ASP.NET攔截並重定向到web.config中定義的登錄頁面。對於AJAX,而不是返回別的東西,像403

+0

無論出於什麼原因AuthorizeCore(overriden)甚至沒有被調用...我試圖找出什麼可以阻止它。 – Valentin

+0

+1它的awfull,asp.net拿起401並自動重定向。這是一個很好的答案! – Christian13467