如何使用ASP.NET MVC维护用户会话

时间:2011-04-24 07:13:47

标签: asp.net asp.net-mvc-3

嘿伙计们,我想知道有没有办法可以在不使用ASP.NET MVC成员资格的情况下维护登录,注销,用户会话......等内容?

Faraaz。

3 个答案:

答案 0 :(得分:7)

有三种提供者模型涉及您所指的区域。

MembershipProvider涉及身份验证,验证用户以及存储与用户相关的数据,例如上次登录日期,用户名等。

RoleProvider涉及授权用户申请特定区域。

SessionStateProvider涉及为您的应用程序存储会话。

如果默认提供程序不合适,您可以为其中任何一个编写自己的自定义提供程序。您可以在没有提供程序的情况下推出自己的身份验证,授权或会话管理,但是实现自己的自定义提供程序会涉及到相当多的工作。

答案 1 :(得分:2)

您可以使用Session对象存储会话范围数据。

但是对于身份验证/授权,您需要提出自己的方案。

答案 2 :(得分:-3)

您需要使用会话字典和会话状态服务器。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms178581.aspx

警告:根据我的经验,InProc会话状态模式仅保留您在当前HTTP请求的生命周期内放入Session的值。即使您使用的是单个HTTP服务器,并且您认为内存存储仍然存在,它们也不会像您预期的那样持续存在请求。这可能只在使用VS2010中的内置http服务器进行调试时发生,但即便这样也会导致您在尝试理解未保存状态信息的原因时遇到很多麻烦。