asp.net – 为什么隐藏字段被认为是客户端状态管理?
根据
MSDN和MCTS自定进度培训,asp.net可以使用隐藏字段进行客户端状态管理.书籍材料继续说视图状态比隐藏字段更安全,因为数据是加密的.
我必须在这里遗漏一些东西.我设置了一个Label并将其隐藏起来.我可以将数据存储在这个隐藏的标签中,甚至不会发送到客户端浏览器.这不仅像服务器端状态一样(注意runat = server),但这似乎比视图状态更安全,因为不需要加密,因为客户端甚至看不到该字段. <asp:Label ID="Label1" Visible="false" runat="server">secret info</asp:Label> 将其与HTML输入字段进行对比.这里,客户端状态信息是有意义的. <input id="Text2" type="text" style="visibility:hidden;" value="secret 99" /> 那是什么交易? 解决方法
在.net中创建标签并将其可见性设置为Hidden时,它不会呈现给客户端,并且其数据存储在viewstate中.
因此,它不比viewstate“更”安全,因为它使用viewstate来维护数据. 关于隐藏字段,有四种:首先是常规HTML,它只是一个隐藏类型的输入.虽然它在html中,但它没有可见的渲染.它也没有viewstate属性.它被声明为: <input id="MyId" type='hidden' value='whatever' /> 第二个是带有css属性的常规输入,将其标记为隐藏:如果CSS被禁用或以其他方式覆盖,则控件将对用户可见.除此之外,它非常接近与type =’hidden’相同的东西. <input id='MyId' type='text' value='whatever' style='visibility:hidden' /> 第三个是.Net隐藏字段.这确实具有viewstate存储,但它也会导致在html中生成常规隐藏字段. <asp:HiddenField id='MyId' runat='server' value='whatever' /> 并且,第四个是标记为不可见的常规.net文本框. <asp:TextBox id='MyId' runat='server' Text='whatever' Visible='False' /> .net将导致数据被放置在viewstate中. HTML没有.如果在.Net控件上设置Visible = False,则它不会呈现给客户端,但是它的数据通常存储在viewstate中. 还有其他方法可以将数据抛入页面,但它们是上述的推导. 一般来说,如果你有一个你的javascript代码需要的值,但你不需要将它显示给客户端,那么你使用隐藏字段(html或.net).如果你有一个秘密值,那么通常你不希望这种情况发生在客户端.这意味着甚至将其排除在视野之外.作为旁注,不要依赖于viewstate“security”,那里有工具可以很容易地解密它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – Asp.Net MVC 2 Html.TextBoxFor为模型的Dat
- CKEditor与CKFinder的配置
- ASP.NET中没有会话状态的用户身份验证
- asp.net – WCF与Web-api平台中的数据和事务
- asp.net-mvc – 渲染位于远程服务器上的部分视图
- ASP.NET C#列出哪些以及何时?
- asp.net – Isapi过滤器无法在IIS 7上运行(在IIS 6上运行)
- asp.net-mvc – 如何从剃刀视图访问My.Resources
- 谈谈基于SQL Server 的Exception Handling[上篇]
- asp.net-mvc – 模型绑定到MVC 3中可能存在非顺序索引的列表
- asp.net-mvc – 将index.html设置为默认页面
- views – 我应该在asp.net MVC6中为我的所有图像
- asp.net-mvc – 是否有任何基于ASP.NET MVC订阅的
- asp.net-mvc – 用于Kendo网格模板中的循环
- ASP.NET-MVC.如何从URL获取控制器名称?
- asp.net – 使用ASP .Net MVC4处理Web API中的集
- ASP.NET:Response.Redirect(…)后的代码会发生什
- asp.net-mvc – 用于电话号码或社会安全号码的Di
- asp.net-mvc – 如何使用WIX在IIS 6上安装ASP.NE
- asp.net-mvc – 如何在MVC WebGrid中显示行号