ASP.NET MVC – 後台如果拜訪時未登錄導引到後台登陸頁面

      在〈ASP.NET MVC – 後台如果拜訪時未登錄導引到後台登陸頁面〉中留言功能已關閉

使用情境:

  • 例如前台為購物網站,所以有使用者登錄
  • 後台 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

print