這次要說明的是 Areas 裡使用 Attribute Routing,其實也很簡單,相信很多人看過之前文章的參考連結就應該知道要怎麼使用,不過這邊還是稍做說明。
這次要說明的是 Areas 裡使用 Attribute Routing,其實也很簡單,相信很多人看過之前文章的參考連結就應該知道要怎麼使用,不過這邊還是稍做說明。
上一篇「ASP.NET MVC - 使用 Attribute Routing」介紹了基本的使用以及稍做變化的設定方式,這一篇再來簡短的說明路徑設定以及在 Areas 下使用 RouteArea 的方式。
Attribute Routing 在原作者 Tim McCall 捐獻給 .NET Framework 後,在 ASP.NET MVC 5 與 ASP.NET Web API 2 的專案裡就可以使用,如果是使用 ASP.NET MVC 5 專案的話,可以在 SystemWeb.Mvc 命名空間裡看到,
這一篇將會對於 Attribute Routing 的使用做個簡單的說明。
是的,這是一篇吹毛求疵的文章,並不是要告訴各位如何建立客製的 Action Filters,而是跟各位說「應該怎麼建立」Action Filters。
也許有人看完會覺得根本沒有什麼重點,但是必須要跟各位強調的就是「魔鬼藏在細節裡」,專案開發時對於細節多多的注意,並且要堅持與習慣一些作法,無論是自己一個人開發或是多人開發,只要共同依循、遵守一些默契與規定,在管理與開發維護上都會有很大的幫助與提昇開發上的效率。
之前的文章「ASP.NET MVC 實做具有多個角色權限的登入功能」裡我們做出了一個登出入的功能,使用者登入成功之後將使用者的多個角色資料給放置到 FormAuthentication 的 UserData 裡,當有需要驗證使用者時,在 HttpApplication.AuthenticateRequest 事件裡取得使用者的識別 ( Identity ) 並且建立 IPrincipal 物件然後放到 HttpContext.Current.User 中,其中的 IPricipal 物件包含 FormsIdentity 以及使用者角色資料。
之前的例子是我們在處理使用者的登入時,當使用者登入成功後會建立 FormsAuthenticationTicket 物件,然後於加密後存入 Cookie 之中,而我們是把 FormsAuthenticationTicket 的 Name 用來放使用者的 ID,而 UserData 則是用來放 Roles(角色資料)。
其實我們可以改用其他的做法,這邊將會介紹我們可以繼承 RoleProvider 以建立自己的 RoleProvider,讓 FormsAuthenticationTicket 的 Name 與 UserData 分別存放使用者顯示名稱與使用者資料 ID。