【发布时间】:2015-03-16 18:38:37
【问题描述】:
我正在学习 ASP.NET 和 C#,我有几个问题,因为阅读 msdn 页面令人困惑。
我需要知道如何以及何时使用 ViewState、Session、隐藏表单字段和 QueryString 进行状态管理。
【问题讨论】:
标签: asp.net asp.net-mvc-3
我正在学习 ASP.NET 和 C#,我有几个问题,因为阅读 msdn 页面令人困惑。
我需要知道如何以及何时使用 ViewState、Session、隐藏表单字段和 QueryString 进行状态管理。
【问题讨论】:
标签: asp.net asp.net-mvc-3
视图状态:
如果您只希望对象在当前页面的生命周期中存在,那么 ViewState 是完美的。
会话状态:
对于需要在用户的整个会话中跨多个页面持续存在的数据,您应该使用会话状态
隐藏表单域:
当您的视图状态禁用时,隐藏字段可用于存储需要跨多个回发保留的数据。
与 javascript 一起使用(因为它是纯文本)
查询字符串:
在页面之间传递值,这是不机密的
更多信息:
https://msdn.microsoft.com/en-us/library/z1hkazw7(v=vs.140).aspx
http://www.codeproject.com/Articles/331962/A-Beginner-s-Tutorial-on-ASP-NET-State-Management
【讨论】:
不要将 QueryStrings 用于会话管理。这是超级危险的,而且很容易受到会话劫持。
众所周知,使用 Session[] 有点不安全。仅在 Session 中存储不是非常敏感的信息。
查看 FormsAuthentication 类 (SetAuthCookie) 函数,了解一些相当简单的内容。
为了更好地实现会话和身份验证,请查看 ASP Memberships here。
【讨论】: