using My.Opinion="我个人认为";
using System.菜.很菜.非常菜;
/// 这篇字儿来自于我正在做的一个网站管理模块的思路;
/// Frameset 和 iFrame 其实本质上没有太大的区别,只是在布局表现上的不同而已;
Frameset实在是太太太...方便了,如果再配合Ajax,我们几乎可以实现和Winform一样的用户界面了.不论是从内容组织还是客户体验方面都是Web Developer居家必备的童子功啊!!可是,VS2005不支持了!当然也不是不支持了,只是不再支持对Frameset使用图形化设计器了.But Why? 我草草的Google了一下.把自己的理解写一下.
Frameset 给.net应用程序--当然也包含其他Server-Browser应用,带来了认证漏洞的问题: 如果不使用Frameset,那么我们的应用程序将在一个页面中运行,那么我们对于安全认证的需求也只来自于当前程序运行的这一个页面.而一旦我们使用了Frameset[或iFrame],那么应用程序就被"分布"到了镶嵌在一个[甚至多个]框架中的多个页面中运行了,这时我们需要处理的安全认证任务也就成倍的增加了.[是否这就是微软谋杀了Frameset的动机呢? 路过.]
如果这个世界和我们自己都是完美的,那么以上问题所涉及的也只是一个量变而已.就好像一个清洁工,原来只要扫一间办公室就完成了工作,现在公司规模扩大了,拥有了10间办公室,那么从理论上来讲,他的工作性质并没有变化,仍然是打扫办公室.但是我们按照现实经验来看,他的工作结果肯定会发生变化.因为他的任务增加了,但是他的工作能力肯定不会成正比增强,于是工作的效率必然下降.
如何解决这个问题?
1. 让他每天打扫一间办公室,也就是每间办公室每10天被打扫一次. 显然这是不行的,因为我们不能忍受办公室的脏乱差.[也许宿舍里可以? ]
2. 增加人手. 这几乎是我们必然的选择.但是这也面临一个问题--开销太大.因为增加一个员工就意味着工资保险福利等等一大堆的费用啊,而且人多了就要有人来负责管理他们的衣食住行,人事关系.......... 而且,也是最重要的:老板会很心疼D~!
有没有其他方法可以解决这个问题? 答案是 3.
3. 解雇原来的清洁工,雇佣一家专业的保洁公司来为我们打扫办公室! yeah!这才是我们要的结果[虽然不是那位清洁工希望的结果,不过好在他只是我虚构出来的人物而已...],工资也许增加了,但是远远少于增加专职员工的成本.一切的管理都由保洁公司负责,我们只要在月底开一张支票就好了.
综上所述[绕了这么大一个圈子,我居然还'综'的出来,我很佩服自己!],在使用Frameset时--Frameset也好,iFrame也好--我们应该为安全认证建立一个专门的[静态]类,或一个用户控件,总之是把安全认证这个功能抽出来,然后再在每个页面中调用他.这样就可以比较完美的解决多个嵌入页面的安全认证问题了.
BTW: 这只是就我一个菜鸟对这个问题的理解.现在也不知道有没有什么新技术出现,解决这种每个页面重复验证的麻烦.毕竟这对服务器资源是一种浪费.而且萝卜快了不洗泥,页面多了难免会有地方出现纰漏.如果有这方面的新动向,希望大家不吝赐教啊!!