我最近使用Asp.Net構建了一個站點。在Asp.NET MVC中爲用戶登錄使用動作過濾器?
我選擇實現用戶登錄的方式是通過基類'UserAwareController'
類,即所有控制器擴展。它包含對UserRepository
的引用,並公開了具體控制器可以查詢的受保護的GetCurrentUser()
方法。
整個過程對我來說有點意味深長。行動過濾器是一個很好的選擇?它有什麼好處?還有什麼我可能會失蹤?
我最近使用Asp.Net構建了一個站點。在Asp.NET MVC中爲用戶登錄使用動作過濾器?
我選擇實現用戶登錄的方式是通過基類'UserAwareController'
類,即所有控制器擴展。它包含對UserRepository
的引用,並公開了具體控制器可以查詢的受保護的GetCurrentUser()
方法。
整個過程對我來說有點意味深長。行動過濾器是一個很好的選擇?它有什麼好處?還有什麼我可能會失蹤?
我沒有看到你目前的做法有什麼問題,除非你爲此目的設置了UserAwareController
。但是,使用動作過濾器也是將用戶注入到動作或控制器的好主意。就我個人而言,我在我的項目中使用了Action過濾器。我需要在我的操作中有一個管理員用戶可訪問,我使用Action Filter注入了用戶。
通常動作過濾器在執行動作或執行動作之前需要做某些特定的事情時會顯示出潛在的可能性。操作過濾器代表您的操作方法的一個交叉問題。
我會推薦你使用會員提供商來存儲和檢索用戶信息。默認的ASP.NET MVC模板有一個例子。 This video也許值得一看。
成分總是比繼承好,你的情況有可能是還需要您的觀點也需要知道像顯示該用戶名/驗證狀態等等等等請查看下面的文章,我有詳細的管理如何這些共享服務。