加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 为什么隐藏字段被认为是客户端状态管理?

发布时间:2020-12-16 03:33:22 所属栏目:asp.Net 来源:网络整理
导读:根据 MSDN和MCTS自定进度培训,asp.net可以使用隐藏字段进行客户端状态管理.书籍材料继续说视图状态比隐藏字段更安全,因为数据是加密的. 我必须在这里遗漏一些东西.我设置了一个Label并将其隐藏起来.我可以将数据存储在这个隐藏的标签中,甚至不会发送到客户端
根据 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”,那里有工具可以很容易地解密它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读