【发布时间】:2014-01-14 04:48:56
【问题描述】:
我正在编写一个应用程序,其中包含许多对话框/模态 div,允许用户执行各种任务,例如上传图片、发送电子邮件等
我的应用程序具有基于角色的安全性,因此当您登录时,它会检查您的会话变量以找出您的身份,然后提供相应的功能。
目前我的所有对话框/模式都在需要它们的页面中。这意味着如果我想在我网站的其他地方使用相同的对话框,我必须复制代码并将其放在该页面上。这立刻让我觉得我应该:
- 为每个对话框创建一个 .cfm 文件,例如
imageupload.cfm和emailsend.cfm - 使用
<cfinclude>将这些 .cfm 文件包含在任何想要使用它们的页面上
这个潜在的解决方案给我带来了挑战,因为包含对话框的页面有许多 if/else 语句,可以根据用户的角色(存储在会话变量中)确定向哪个用户呈现什么。
我必须这样做:
- 也将 if/else 逻辑语句复制到对话框页面,因为
例如,
imageupload.cfm提供的内容会因您的角色而异 - 站点中的每个页面都受到调用
user-security.cfc文件的保护,该文件检查用户是否已登录。我是否还必须在每个对话框.cfm 页面中进行此调用?如果我这样做,那么在同一页面内将有两次调用同一user-security.cfc文件,因为对话框页面包含在主页中。但是,如果我也不从对话框 .cfm 中调用user-security.cfc,那么有人会直接进入这些页面并开始造成混乱吗?
很抱歉,这不是一个纯粹的编程问题和更多理论上的最佳实践,但我不确定如何在保持可扩展性的同时解决它。我在 IIS 7.5 上使用 ColdFusion 10
【问题讨论】:
-
您从哪里调用 user-security.cfc?
-
我怀疑您应该阅读 MVC 原则并查看已经存在的框架(FW/1、Coldbox 等),因为在我看来您是可能在这里重新发明轮子。
-
我认为这是一种特别糟糕的方法,显示出判断力差,只会为自己做不必要的工作。并且 - 鉴于您似乎是这方面的新手 - 将导致不太理想的解决方案。仍然:您的电话。只能把马牵到水边。
-
不使用框架,因为你不知道它是如何工作的,就像拒绝开车,因为你不知道内燃机是如何工作的。框架解决了每个 Web 应用程序都会遇到的问题。不要重新发明轮子。
-
我会大胆猜测,由框架作者编写并由数百名开发人员使用和测试的代码会比您组装的“本土”框架更值得信赖。
标签: security coldfusion coldfusion-10