依赖 SharePoint "ct100"标识符的安全性如何?



在我的Sharepoint生成的网页中,有很多地方的元素ID由Sharepoint以前缀"ct100"分配值。

在我的javascript中引用这些ID有多安全?它们有多静态?它们因任何原因而改变的可能性有多大?是否有任何文件讨论了它们是如何生成的,并回答了上述问题?

谢谢,George

"安全"在这里是相对的,取决于特定的页面和所涉及的控件。

看起来像ctXYZ的单个ID是由父ASP自动生成的。Net Naming Container当控件没有显式分配ID时,即ID是自动生成的,如ct001、ct002等,确保不会创建重复项。

最终的客户端ID(在HTML中被指定为ID属性)是由控件的所有ID和所有祖先用下划线连接而成的;因此单个客户端ID的稳定性受到多个控制的影响。

只有始终以相同的方式重新创建控制树时,才能保证生成的客户端ID保持稳定——这在许多情况下都是正确的,但不是绝对的。动态添加或删除控件可以很容易地打破这种假设。


ASP。Net4(或4.5?)引入了一种不同的ID模式,主要是"可预测",请参阅命名容器链接,但我不认为SharePoint在任何地方都使用了这一新功能;并且它绝对不用于包含CCD_ 2组件的ID。

根据研究,最安全的方法是使用css和jquery来识别和操作"ct001"元素。我已经尝试过这种方法,而且看起来效果很好。

最新更新