用于状态管理ASP.NET的ViewState,Session,Hidden Form Fields和QueryString

时间:2015-03-16 18:38:38

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

我正在学习ASP.NET和C#,因为阅读msdn页面令人困惑,我有几个问题。

我需要知道如何以及何时使用ViewState,Session,Hidden Form Fields和QueryString进行状态管理。

2 个答案:

答案 0 :(得分:2)

ViewState:

如果您只希望对象在当前页面的生命周期中存活,则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

答案 1 :(得分:-3)

不要使用QueryStrings进行会话管理。这是非常危险的,并且非常容易受到会话劫持的影响。

使用Session []也有点不安全。仅在会话中存储不是非常敏感信息的信息。

查看FormsAuthentication类(SetAuthCookie)函数是否相当简单。

要更好地实现会话和身份验证,请查看ASP成员资格here