惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
T
The Blog of Author Tim Ferriss
B
Blog
L
LangChain Blog
Y
Y Combinator Blog
美团技术团队
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
量子位
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
Check Point Blog
D
Docker
小众软件
小众软件
The Cloudflare Blog
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
Google DeepMind News
Google DeepMind News
IT之家
IT之家

博客园 - hdbb30

SharePoint 通讯录查询 - hdbb30 - 博客园 ASP.Net调用Excel组件错误的问题解决 创建强命名程序集 缩小数据库日志文件 SharePoint首页添加天气预报 - hdbb30 - 博客园 工作流产品比较 运用Google Ajax搜索API ASP.NET保持用户状态的九种选择 ASP.NET中Cookie编程的基础知识 生成中文的验证码(ASP.NET C#) Asp.Net 动态生成验证码 用ASP.NET构建完整E-mail发送系统 弹出确认对话框的自定义Web服务器控件ConfirmButton GRIDVIEW 用法 Net/WEB开发常用的方法、函数 Asp.Net 动态生成验证码 ASP.NET程序中常用的三十三种代码 在DataGrid中利用CheckBox全选所有行 ASP.NET中17种正则表达式
ASP.NET状态保存方法
hdbb30 · 2006-10-04 · via 博客园 - hdbb30

使用客选项储页信息不使用服选项往往具有最低的安全性但具有最快 的服器性能,因为对源的要求是适度的。但是,由于必将信息送到客端来行存,因此于以这种方式可以存多少信息存在一定的限制

客户端保存的方式一般有如下4

1     ViewState:

利用场合为:同一的多个保留多用于客户端一些事件典型利用场合页面信息重置 登陆出错次数统计Grid排序

优点不利用服务器资源实现简单相对安全性因为经过哈希计算压缩并且针对 Unicode 现进

缺点因为ViewState存储页面本身所以无法存储并且通过源文件可以看见其中虽然经过哈希计算压缩仍有篡改风险

可存储类型string,integer,bool,array,arr aylist,hashtable以及其他可以序列化的类型

2     HiddenField:

利用场合为:存储少量页面经常改动的信息多和客户端脚本一块使用典型利用场合客户端经历一系列验证之后服务器回发服务器客户端HiddenField获取进行处理例如LeyserHomepage删除一项产品需要客户端弹出确认Form用户确认之后PostBac k服务器进行数据库Delete操作用户确认删除时当前删除的产品ID存放到一个HiddenField然后执行 Form(0).submit回发服务器服务器HiddenField获取产品ID进行数据库操作

优点不使用服务器资源 广泛支持实现简单

缺点:安全性不高因为包含页面进行发送所以可以通过源文件看见他的内容存储结构仅仅支持string,integer,bool,array,arraylis t简单的数据结构并且在其只存放简单的单值若要存放多值需要额外编码存储因为存储页面本身所以 无法存储较大而且数据防火墙代理阻止 注意 使用了HiddenField之后需要回发服务器进行 处理应该使用Http Post方法不是Http Get方法(通过URL请求访问)

3     Cookie:

利用场合存储少量经常改动的信息典型利用场合登陆过的网站保存登陆用户名用户输入提供方便 还有一些用户自定义项目上保存用户的个性化设置

优点不使用服务器资源实现简单可配置到期时间

缺点大小受到限制一般浏览器支持的最大Cookie 容量4096字节客户端用户可能会配置拒绝Cookie安全性保存在客户端信息可能会被恶意用户修改或者获取所以不应该保存敏感信息持久保存期限受到客户端的配置影响

Cookie 通常用于 存取已知用自定内容的个性化情况。在大多数此情况中,Cookie 是作标识而不是身份验证,所以在 Cookie 中只存 名、账户名或唯一用 ID(例如 GUID)并使用它来访问站点的用个性化是足的了

4     QueryString:

利用场合 信息一页传递给另一页最简单方法

优点不使用服务器资源支持广泛实现简单

缺点安全性因为直接URL暴露用户 所以篡改风险容量有限一般的浏览器都有255字符的限制只有在通 URL 页时查询字符串才是可行的选择不能从已提交器的页读 查询字符串

 
视图态:需要将回到自身的少量信息。ViewState 属性的使用将提供具有基本安全性的功能。   
藏域:需要将回到自身或另一少量信息,并且不需要高的安全性。 客户端事件只能在提交到服器的上使用藏域。 
Cookie:需要在客端存少量信息并且不需要高的安全性。个性化     
查询字符串 可以将少量信息从一页传输到另一,并且不需要高的安全性。 页面跳转 只有在求同一,或通过链求另一页时,才能使用查询字符串。   

服务器端保存方式一般有如下3种:

储页信息的服器端选项往往比客选项具有更高的安全性,但它可能使用更多的 Web 源,可能在信息存时导致可放性问题

1     Application:

利用场合所有的请求都会需要的 一些共有资源最先一个请求获取之后拿出来共享其他的请求就不用浪费资源进行再次获取典型利用场合一个股市 Web 站点可能在一天中 5 从数据库获取大量的金融股票信息(也 40 MB 的数据),然后将些信息存在用程序状中,这样所有以后的求都可以在用程序状访问这些信息。果是极大地提高了求的性能,因为传入的求不需要跨程、跨算机或数据的往返程。

        '首次Http Get請求

        If Not Me.IsPostBack Then

            '先判断Application中是否已経有了緩存

            If Application.Item("Database") Is Nothing Then

                '若没有,DataCenter中獲取

                Dim ds As New DataSet

                ds.ReadXml(Server.MapPath("TestData.xml"))

                Dim dv As New DataView(ds.Tables(0))

                '拿到之后, 緩存到Application,方便別的Http Get請求復用

                Application.Add("DataBase", dv)

            End If

            Dim dv1 As DataView

            dv1 = Application.Item("DataBase")

            '緩存到Session, 方便当前Http Post請求

            Session.Add("DataBase", dv1)

        End If

优点易于实现全局范围

缺点持久性 保存数据的服务器进程强行关闭那么数据就会丢失所以利用Application一定要有保底策略有的使用没有的自己耗用服务器端的内存

注意因为Application中的数据多个进程公用所以需要更新其中的值时需要利用 如下的语句做到独占更新

                Application.Lock()

                Application.Item("DataBase ") = NewDataBase

                Application.UnLock()

2     Session:

利用场合单独一个进程内部使用独会的短期的、敏感的数据。

优点易于实现持久性可以应对IIS重启辅助进程重启 可在进程使用

缺点耗用服务器端的内存

3     Database:

优点安全性。 容量。 持久性。 可靠性和数据完整性。 访问性。 广泛支持。

缺点复杂性能

方法    使用       
用程序状    更改不繁的全局信息,些信息由多个用使用,此安全性不成为问题不要在用程序状中存大量的信息。   
        特定于独会的短期信息,并且需要高的安全性。不要在会中存 大量的信息。在支持多用用程序中,可能会占用大量服源并影响可放性。     
数据支持      大量信息,管理交易,或者信息必可以受得住用程序和会重新启数据挖掘十分重要,并且需要高的安全性。