使用情境:
- 例如前台為購物網站,所以有使用者登錄
- 後台 Area 為 管理者頁面,也有使用者登錄
- 都使用 ASP.NET Identity ,但用角色區分使用者是否有權限進入後台
- 前台使用角色判斷只有Customer 可以登錄,後台則只有 Administrator 角色可以登錄
問題 :
由於只能設定一個登錄頁面,拜訪 Management 後台網站時,都被導引到 前台的 Account/Login 頁面
但為了讓後台的頁面如 Management/Order/Index 發現使用者未登錄時,自動導向後台登錄頁面 Management/Home/Login
在 Management 新增一個 Attributes 資料夾,建立 ManagementAreaAttribute.cs
public class ManagementAreaAttribute : AuthorizeAttribute { protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { filterContext.Result = new RedirectResult("/Management/Home/Login"); } }
雖然使用時目前只能一個 Controller 一個一個加,但可以解決燃眉之急
連結 :
https://stackoverflow.com/questions/19045257/setting-forms-authentication-redirect-url-per-area