自定义身份验证asp.net MVC

时间:2009-10-29 11:42:29

标签: asp.net-mvc authentication

我应该在什么时候在我的mvc应用程序中检查我的cookie?基本上我希望为每个请求做的是检查是否有cookie,如果是,在屏幕上显示他们的名字,如果没有,页面要求用户登录,将他们重定向到登录页面。

我不想使用FormsAuthentication,因为我希望创建和使用我自己的IPrinciple对象我只是不确定我是应该在基本控制器类中设置它们还是创建我自己的Authorize属性并进行检查那里。

我最初的想法是我应该在基本控制器类中执行此操作,因为这类似于我覆盖oninit的webforms中的基页。

1 个答案:

答案 0 :(得分:3)

不要尝试在基本控制器类中进行身份验证。在缓存操作结果的情况下,您的操作根本不会运行,并且不会实例化任何控制器。因此,authentication done inside the controller is broken by design

出于多种原因,自定义身份验证的正确方法是创建自定义身份验证提供程序。我已经解释了原因,并在上面链接的帖子中给出了如何做到这一点的简单例子的链接。

简而言之,使用这种方法:

  • 具有适当的模块化水平
  • 使用缓存
  • 适用于常规ASP.NET以及MVC