我正在开发一个ASP.NET MVC Web应用程序,我已经创建了自己的身份验证模块,这是基于会话的(没有cookie)。问题是:当我重建我的应用程序时,我会自动记录(会话为空)。
通常这不是一个大问题,因为我的应用程序不是在生产环境中“自动”重建。但我还创建了一个更改资源文件的模块,在修改资源文件后,应用程序似乎会自动重建。
所以我的实际问题:重建后是否可以“保持”会话变量/保持登录状态?
答案 0 :(得分:6)
您需要使用InProc会话之外的其他内容。您需要查看使用ASP.net State Server或SQL Server作为会话的后备存储。这些可能会慢一点,但更有弹性。
答案 1 :(得分:1)
正如Paddy所说,你需要使用InProc会话以外的东西。转到MSDN,了解如何更改为基于SQL或Windows服务的解决方案。
实际上我认为总是使用进程外会话是一种好习惯。在同一个盒子上使用ASP.NET状态服务时的性能损失很小,如果您决定在将来某个时候更改会话状态机制,您将不会遇到任何令人讨厌的意外(运行InProc时,您可以推送任何内容)会话,但是一旦你使用了进程外会话状态,数据就必须是可序列化的,这可能会在不欢迎意外的时候出现令人讨厌的惊喜。)