asp.net-mvc - 自定义身份验证 asp.net MVC

标签 asp.net-mvc authentication

我应该在什么时候检查我的 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/

相关文章:

asp.net-mvc - Microsoft MVC 4、APIController 和适当的 RESTful 登录 Web 服务

iphone - 可以使用 native facebook 应用程序登录移动 html5 应用程序吗?在 iPhone 上

ios - Mobile Safari 提示对某些媒体(例如 MP4)进行 Windows/NTLM 身份验证

authentication - 如何为运行在同一台服务器上的不同 ColdFusion 应用程序实现单点登录?

c# - 可重复使用的复选框部分 View

asp.net-mvc - ASP.NET MVC - 单元测试过度? (时分驱动)

c# - 将类的实例作为参数传递给属性构造函数

authentication - 如何为Asp.NET MVC 5创建ClaimsIdentity对象?

node.js - 使用自定义 SSL 证书在 Openshift 中进行 SSL 客户端身份验证

asp.net-mvc - 仅允许来自同一网络服务器的请求的操作