ASP.NET状态管理之十三(总结)
现简单 隐藏域是标准的 HTML 控件,不需要复杂的编程逻辑。
使用隐藏域的缺点 潜在的安全风险 隐藏域可以被篡改。如果直接查看页输出源,可以看到隐藏域中的信息,这导致潜在的安全性问题。您可以手动加密和解密隐藏域的内容,但这需要额外的编码和开销。如果关注安全,请考虑使用基于服务器的状态机制,从而不将敏感信息发送到客户端。 简单的存储结构 隐藏域不支持复杂数据类型。隐藏域只提供一个字符串值域存放信息。若要存储多个值,必须实现分隔的字符串以及用来分析那些字符串的代码。您可以手动分别将复杂数据类型序列化为隐藏域以及将隐藏域反序列化为复杂数据类型。但是,这需要额外的代码来实现。如果您需要将复杂数据类型存储在客户端上,请考虑使用视图状态。视图状态内置了序列化,并且将数据存储在隐藏域中。 性能注意事项 由于隐藏域存储在页本身,因此如果存储较大的值,用户显示页和发送页时的速度可能会减慢。 存储限制 如果隐藏域中的数据量过大,某些代理和防火墙将阻止对包含这些数据的页的访问。因为最大数量会随所采用的防火墙和代理的不同而不同,较大的隐藏域可能会出现偶发性问题。如果您需要存储大量的数据项,请考虑执行下列操作之一: 将每个项放置在单独的隐藏域中。 使用视图状态并打开视图状态分块,这样会自动将数据分割到多个隐藏域。 不将数据存储在客户端上,将数据保留在服务器上。向客户端发送的数据越多,您的应用程序的表面响应时间越慢,因为浏览器需要下载或发送更多的数据。 Cookie Cookie 用于在客户端上存储少量经常更改的信息。这些信息与请求一起发送到服务器。 使用 Cookie 的优点 可配置到期规则 Cookie 可以在浏览器会话结束时到期,或者可以在客户端计算机上无限期存在,这取决于客户端的到期规则。 不需要任何服务器资源 Cookie 存储在客户端并在发送后由服务器读取。 简单性 Cookie 是一种基于文本的轻量结构,包含简单的键值对。 数据持久性 虽然客户端计算机上 Cookie 的持续时间取决于客户端上的 Cookie 过期处理和用户干预,Cookie 通常是客户端上持续时间最长的数据保留形式。 使用 Cookie 的缺点 大小受到限制 大多数浏览器对 Cookie 的大小有 4096 字节的限制,尽管在当今新的浏览器和客户端设备版本中,支持 8192 字节的 Cookie 大小已愈发常见。 用户配置为禁用 有些用户禁用了浏览器或客户端设备接收 Cookie 的能力,因此限制了这一功能。 潜在的安全风险 Cookie 可能会被篡改。用户可能会操纵其计算机上的 Cookie,这意味着会对安全性造成潜在风险或者导致依赖于 Cookie 的应用程序失败。另外,虽然 Cookie 只能被将它们发送到客户端的域访问,历史上黑客已经发现从用户计算机上的其他域访问 Cookie 的方法。您可以手动加密和解密 Cookie,但这需要额外的编码,并且因为加密和解密需要耗费一定的时间而影响应用程序的性能。 注意 Cookie 通常用于为已知用户自定义内容的个性化情况。在大多数此类情况中,Cookie 是作为“标识”而不是“身份验证”。因此,通常保护用于标识的 Cookie 的方法是在 Cookie 中存储用户名、帐户名或唯一用户 ID(例如 GUID),然后用以访问站点的用户个性化结构中的信息。 查询字符串 查询字符串是在页 URL 的结尾附加的信息。 可以使用查询字符串来通过 URL 将数据提交回您的页或另一页上。查询字符串提供一种维护某些状态信息的简单但有限的方法。例如,它们是将信息从一页传送到另一页的简便的方法(例如,将产品号传递到将处理该产品号的另一页)。 使用查询字符串的优点 不需要任何服务器资源 查询字符串包含在对特定 URL 的 HTTP 请求中。 广泛的支持 几乎所有的浏览器和客 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |