我正在设计一个Web应用程序,它必须在页面之间传递敏感信息(例如用户的帐号),直到用户完成(应用程序就像向导),用于记录目的。存储此数据的最佳方法是什么,以便流程中的每个页面都可以访问数据?我应该将它存储在会话中吗?在数据库中,然后在结束时删除它?我还没想到的一些方法呢?
答案 0 :(得分:2)
我个人试图避免使用会话where possible。以下是处理向导类型方案时我所知道的选项:
选项1
使用Nadeem Afana's blog中讨论的JQuery。页面将逐一显示给用户,但直到最后一页才会提交信息。
选项2
每个页面上的信息是否敏感?它的结构是否可以在最终页面上询问敏感信息?如果是这样,您可以按照Darin Dimitrovs answer中的讨论在页面之间序列化数据,而不是在最后一页上提供后退按钮。或者,使用相同的MVC Futures序列化软件可以轻松加密序列化的数据,尽管我不确定您的信息有多敏感以及您是否愿意依赖此信息。答案还提到了诸如 Stepy 之类的替代方案,但我没有这方面的经验。
选项3
如果信息敏感,您可以在请求之间向数据库写入/读取信息。
选项4
最后,如果您不能使用上述任何一个,那么我会使用Session或TempData(它是会话的包装器)但要注意使用TempData,如果用户刷新页面,那么信息将丢失
答案 1 :(得分:0)
会话对我来说听起来不错,它会(几乎)自动消失 如果你是偏执狂,那么你可以加密它或将它存储在其他地方并通过哈希找到它。这个"其他地方"那么你的下一个保存点就足够了吗?
确保它无法访问网络客户端。