asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

ASP.NET状态保存方法


发布日期:2018年08月08日
 
ASP.NET状态保存方法

ASPNET状态保存分为客户端保存和服务器端保存两种
使用客户端选项存储页信息而不使用服务器资源的这些选项往往具有最低的安全性但具有最快 的服务器性能因为对服务器资源的要求是适度的但是由于必须将信息发送到客户端来进行存储因此对于以这种方式可以存储多少信息存在一定的客观限制
客户端保存的方式一般有如下
ViewState:
利用场合为在对同一页的多个请求间自动保留值多用于客户端的一些事件典型利用场合为页面信息重置 登陆出错次数统计Grid列排序等
优点不利用服务器端资源实现简单相对高的安全性因为经过哈希计算和压缩并且针对 Unicode 实现进行编码
缺点因为ViewState存储在页面本身所以无法存储较大的值并且通过源文件可以看见其中的值 虽然经过哈希计算和压缩但仍有被篡改的风险
可存储的类型stringintegerboolarrayarr aylisthashtable以及其他可以序列化的类型
HiddenField:
利用场合为存储少量页面中经常改动的信息多和客户端脚本一块使用典型利用场合为客户端经历一系列验证之后向服务器端回发服务器端从客户端HiddenField中获取值进行处理例如 LeyserHomepage中要删除一项产品需要在客户端弹出确认Form用户确认之后再PostBac k回服务器端进行数据库Delete操作当用户确认要删除时将当前要删除的产品ID存放到一个HiddenField中然后执行 Form()submit回发到服务器端服务器端再从HiddenField获取产品ID值进行数据库操作
优点不使用服务器资源 广泛支持实现简单
缺点安全性不高因为它被包含在页面上进行发送所以可以通过源文件看见他的内容存储结构少仅仅支持 stringintegerboolarrayarraylis t等简单的数据结构并且在其上只存放简单的单值若要存放多值需要额外编码存储量少因为它被存储在页面本身所以无法存储较大的值而且大的数据量会受到防火墙和代理的阻止 注意 使用了HiddenField之后需要回发到服务器进行处理应该使用Http Post方法而不是Http Get方法(通过URL请求访问) Cookie:
利用场合为存储少量页面中经常改动的信息典型利用场合为为登陆过的网站保存登陆用户名为用户输入提供方便 还有在一些用户自定义项目上保存用户的个性化设置
优点不使用服务器资源实现简单可配置到期时间
缺点大小受到限制一般浏览器支持的最大的Cookie 容量为字节客户端用户可能会配置为拒绝Cookie安全性保存在客户端的信息可能会被恶意用户修改或者获取所以不应该保存敏感信息持久性保存期限受到客户端的配置影响
Cookie 通常用于 存取已知用户自定义内容的个性化情况在大多数此类情况中Cookie 是作为标识而不是身份验证所以在 Cookie 中只存 储用户名账户名或唯一用户 ID(例如 GUID)并使用它来访问站点的用户个性化结构是足够的了
QueryString:
利用场合为 将信息从一页传递给另一页的最简单的方法
优点不使用服务器资源支持广泛实现简单
缺点安全性因为直接在URL中暴露给用户 所以有被篡改的风险容量有限一般的浏览器都有个字符的限制只有在通过其 URL 请求页时查询字符串才是可行的选择不能从已提交给服务器的页读取 查询字符串
视图状态:需要为将回发到自身的页存储少量信息ViewState 属性的使用将提供具有基本安全性的功能(wwwliancom)
隐藏域需要为将回发到自身或另一页的页存储少量信息并且不需要较高的安全性 (客户端事件)只能在提交到服务器的页上使用隐藏域
Cookie需要在客户端存储少量信息并且不需要较高的安全性(个性化)

上一篇:Asp.net 页面导航的几种方法与比较

下一篇:一个ASP.Net下的WebShell实例