我应该在什么时候检查我的 mvc 应用程序中的 cookie?基本上,我希望对每个请求执行的操作是检查是否有 cookie,如果有,则在屏幕上的某个位置显示其名称,如果没有,则该页面要求用户登录,将其重定向到登录页面。
我不想使用 FormsAuthentication,因为我希望创建和使用我自己的 IPrinciple 对象,我只是不确定是否应该在基本 Controller 类中设置这些对象或创建我自己的 Authorize 属性并在中进行检查那里。
我最初的想法是,我应该在基本 Controller 类中执行此操作,因为这类似于我重写 oninit 的 Webform 中的基本页面。
最佳答案
不要尝试在基本 Controller 类中进行身份验证。在缓存操作结果的情况下,您的操作根本不会运行,并且不会实例化任何 Controller 。因此,authentication done inside the controller is broken by design .
出于多种原因,自定义身份验证的正确方法是创建自定义身份验证提供程序。我已经在上面链接的帖子中解释了原因,并提供了如何执行此操作的简单示例的链接。
简而言之,使用这种方法:
- 具有适当的模块化水平
- 使用缓存
- 可与常规 ASP.NET 以及 MVC 配合使用
关于asp.net-mvc - 自定义身份验证 asp.net MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1643145/