答案很簡單,因為你還沒登入就要使用權限相關機制
在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");
}
....
......
沒有留言:
張貼留言