【问题标题】:Asp.net MVC Authentication how does the Authentication workAsp.net MVC Authentication 身份验证是如何工作的
【发布时间】:2011-07-12 16:02:37
【问题描述】:

可能我的问题很疯狂。

1) ASP.net MVC 是无状态的,所以这里不涉及会话。

身份验证模块是如何工作的,您是否有任何文章可以指点我了解身份验证基础知识。

认证信息存储在什么地方。

[新手MVC]

【问题讨论】:

  • “不涉及任何会话”是什么意思?也许您将会话状态与视图状态混淆了——后者是仅在 ASP.NET 表单中可用的概念。

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 asp.net-mvc-4 asp.net-authentication


【解决方案1】:

谁告诉你 ASP.net MVC 是无状态的?在任何情况下,身份验证信息通常存储在加密的 cookie 中。在这方面它与网络表单完全相同。

更新

关于 ASP.NET MVC,请参阅此处以获取大量入门信息:http://www.asp.net/mvc

对于 ASP.NET 表单身份验证,请参阅MSDN

【讨论】:

  • 我想我看过一些视频,他们提到它是无国籍的。可能是我对此的理解不正确,请您帮助我加入并阅读有关此的文章。我想澄清这个神话。
  • ASP .Net MVC 在控制状态方面有时被称为无状态(inputselect 等)我猜这可能是混乱的来源。
  • @ilivewithian:没有什么能阻止您在 MVC 中维护输入或选择的状态。
  • @bhushanvinay:请参阅更新中的链接以获取教程等。Re stateless,正如之前的评论者所提到的,可能他们说它没有 ViewState 的概念。
  • 只发回同款 --> "viewstate"
【解决方案2】:

网络是无状态的。 ASP.NET 和 ASP.NET MVC 都有创建应用程序状态的机制。 MVC 的拥护者喜欢它为开发人员提供了对状态管理方式以及请求如何影响管理状态的更多控制,而不是 Web 窗体。 Web 窗体用 ViewState 封装状态,这不是 MVC 的一部分。 MVC 模式允许您在更精细的级别上控制每个操作(包括管理应用程序状态)。这可能是您认为 MVC 是无状态的想法的地方。

附带说明,您应该更喜欢使用TempDataDictionary 而不是HttpSessionState 来存储与状态相关的数据,因为 TempDataProvider 的默认实现是HttpSessionState 的包装器)。模式有点不同,但是可以在http://www.gregshackles.com/2010/07/asp-net-mvc-do-you-know-where-your-tempdata-is/找到一篇好文章@

ASP.NET(和 MVC)身份验证通常利用 Forms Authentication 进行。它可以在您的web.config 中配置。 ASP.NET Authentication Configuration

如果您的客户端浏览器支持 cookie,则默认行为是将您的身份验证票证存储在 cookie 中。

【讨论】:

    【解决方案3】:

    从技术上讲,如果您在每个请求中发送 HTTP 标头授权,您就可以实现无状态。

    【讨论】:

      猜你喜欢
      • 2012-08-21
      • 2015-11-15
      • 1970-01-01
      • 2010-09-24
      • 2013-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      相关资源
      最近更新 更多