2012-06-13 64 views
0

在我的Web應用程序中,我想在控制器中的某些操作方法中添加授權,而不是在整個控制器上。我增加了以下MVC 3授權屬性不起作用的方法

[Authorize] 
    public ActionResult ManageResturant(long Id = 0) 
    { 
    } 

,並在web.config中我增加

<authentication mode="Forms" > 
    <forms loginUrl="~/Auth/LogIn"/> 
</authentication> 

,但是當我去到操作方法頁面加載通常這是錯誤的,我想在頁面重定向到登錄頁面

有什麼建議嗎?

+0

請確保您已註銷 –

回答

1

感謝約翰的評論,我真的發現了提示的問題是在我的代碼後的溶液

我使用會話來存儲登錄的用戶的使用FormsAuthentication,以確保所有用戶都登錄使登錄鏈接似乎他們

當會話過期的問題是FormsAuthentication仍然驗證用戶的登錄用戶,因此看來,用戶將被註銷,但實際上他已登錄使用表單認證

所以我做了OnActionExecuting方法,我做了一個檢查會話,如果它爲空我註銷的用戶,所以在這種情況下,我確保用戶註銷

0

設置看起來不錯,你真的確定你在調用這個Action嗎?你有沒有沒有[Authorize]註解的名稱爲ManageResturant的另一個Action?

+0

是的我肯定會調用此操作,並沒有其他操作方法一樣的名字 –