2013年4月13日 星期六

加入了跟使用者登入權限有關的partial view後,頁面會一直跑回login介面?

答案很簡單,因為你還沒登入就要使用權限相關機制
在Html.RenderAction時,filter在無法得到登入資料時,會導向login form (在你的web.conf中<authentication....> <forms loginUrl=....> 設定)
而此時,你的form的returnUrl又指向目前所在,於是就成了登入後還是直留在登入介面
解決之道,在主頁面要呼叫Html.RenderAction時
要加入「@if(Request.IsAuthenticated)」的檢查
如果有Authentication,再呼叫Html.RenderAction
example:
in _layout.cshtml
.....
...
    @if(Request.IsAuthenticated){
       Html.RenderAction("_userFunctionList", "TcsAccount");
    }
....
......

沒有留言:

張貼留言