2010-01-30 60 views
1

一个简单的问题。我有两个运行服务器端的文本框,并关闭了其可见性。我正在使用一些需要文本框存在的ASP.NET控件。但是,我从后面的代码中填充它们,并且不希望用户看到它。用户是否可以打开可见性并查看文本框中输入的值?我尝试使用FireBug,并且我似乎无法选择可见性选项以编辑它。不过,我对Firebug来说还是个新手,所以可能有另一种方式?或者运行服务器端意味着客户端无法查看文本框的内容? 谢谢服务器端控件隐藏 - 可能读取客户端的值?

+0

如果您可以看到Firebug中的字段,这意味着客户端可以使用该字段。你可能想检查'display'属性。 – pgb 2010-01-30 19:51:17

回答

1

将Visible的服务器端属性设置为false将导致控件在浏览器中根本不呈现,这意味着用户将无法在页面源或任何内容中查看它们。

然而,如果你使用CSS显示属性设置为无,控制实际呈现,只是在浏览器中不可见的...虽然,因为它是一个服务器端控制,该值将是其上加密,并且视图状态用户需要精通技术才能真正掌握控制值。

+0

ViewState中的内容是原始值的副本,实际值在元素中的值属性中以纯文本形式显示。用户不必比使用“View Source”选项查看值更精明。 – Guffa 2010-01-30 20:11:21

+0

@Guffa这不一定是真的。此外,ViewState中的值至少是编码的,尽管它们也可以被加密。即使除此之外,ViewState的结构没有记录,所以没有可靠的方法来解码它。 – Eilon 2010-01-30 20:33:17

+0

我试过看页面源码,但找不到任何东西。所以要确认,如果我为我的文本框使用'',那么客户端永远不会看到这些值?或者你是否说即使数据没有呈现,它仍然在ViewState中传递(可以很容易解码)? 谢谢 – Skoder 2010-01-30 21:07:42