我正在学习ASP.NET和C#,因为阅读msdn页面令人困惑,我有几个问题。
我需要知道如何以及何时使用ViewState,Session,Hidden Form Fields和QueryString进行状态管理。
答案 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。