在ASP.NET MVC中将敏感数据从页面传递到页面的最佳方法是什么?

时间:2012-05-10 08:54:08

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

我正在设计一个Web应用程序,它必须在页面之间传递敏感信息(例如用户的帐号),直到用户完成(应用程序就像向导),用于记录目的。存储此数据的最佳方法是什么,以便流程中的每个页面都可以访问数据?我应该将它存储在会话中吗?在数据库中,然后在结束时删除它?我还没想到的一些方法呢?

2 个答案:

答案 0 :(得分:2)

我个人试图避免使用会话where possible。以下是处理向导类型方案时我所知道的选项:

选项1

使用Nadeem Afana's blog中讨论的JQuery。页面将逐一显示给用户,但直到最后一页才会提交信息。

选项2

每个页面上的信息是否敏感?它的结构是否可以在最终页面上询问敏感信息?如果是这样,您可以按照Darin Dimitrovs answer中的讨论在页面之间序列化数据,而不是在最后一页上提供后退按钮。或者,使用相同的MVC Futures序列化软件可以轻松加密序列化的数据,尽管我不确定您的信息有多敏感以及您是否愿意依赖此信息。答案还提到了诸如 Stepy 之类的替代方案,但我没有这方面的经验。

选项3

如果信息敏感,您可以在请求之间向数据库写入/读取信息。

选项4

最后,如果您不能使用上述任何一个,那么我会使用Session或TempData(它是会话的包装器)但要注意使用TempData,如果用户刷新页面,那么信息将丢失

答案 1 :(得分:0)

会话对我来说听起来不错,它会(几乎)自动消失 如果你是偏执狂,那么你可以加密它或将它存储在其他地方并通过哈希找到它。这个"其他地方"那么你的下一个保存点就足够了吗?

确保它无法访问网络客户端。

相关问题