我最近使用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也许值得一看。
成分总是比继承好,你的情况有可能是还需要您的观点也需要知道像显示该用户名/验证状态等等等等请查看下面的文章,我有详细的管理如何这些共享服务。