【发布时间】:2011-04-24 07:13:47
【问题描述】:
大家好,我想知道有没有什么方法可以在不使用 ASP.NET MVC 成员资格的情况下维护登录、注销、用户会话等内容?
法拉兹。
【问题讨论】:
-
尝试使用
FormsAuthentication或编写您自己的会话管理。
标签: asp.net asp.net-mvc-3
大家好,我想知道有没有什么方法可以在不使用 ASP.NET MVC 成员资格的情况下维护登录、注销、用户会话等内容?
法拉兹。
【问题讨论】:
FormsAuthentication 或编写您自己的会话管理。
标签: asp.net asp.net-mvc-3
您所指的领域涉及三种提供者模型。
MembershipProvider 涉及身份验证、验证用户和存储与用户相关的数据,例如上次登录日期、用户名等。
RoleProvider 与授权用户使用您的应用程序的特定区域有关。
SessionStateProvider 负责为您的应用程序存储会话。
如果默认提供程序不合适,您可以为其中任何一个编写自己的自定义提供程序。您可以在没有提供程序的情况下推出自己的身份验证、授权或会话管理,但是除了实现您自己的自定义提供程序之外,还有很多工作要做。
【讨论】:
您可以使用Session 对象来存储会话范围的数据。
但对于身份验证/授权,您需要提出自己的方案。
【讨论】:
您需要使用会话字典和会话状态服务器。请参阅http://msdn.microsoft.com/en-us/library/ms178581.aspx 了解更多信息。
警告:根据我的经验,InProc 会话状态模式仅保留您在当前 HTTP 请求的生命周期内放入 Session 的值。它们不会像您期望的那样在请求中持续存在,即使您使用单个 HTTP 服务器并且您认为内存存储会持续存在。这可能仅在使用 VS2010 中内置的 http 服务器进行调试时发生,但即便如此,在尝试理解为什么不保存状态信息时也会给您带来很多麻烦。
【讨论】: