在Flex中构建动态UI

时间:2010-12-06 20:34:13

标签: flex flash user-interface actionscript

'嗨 -

我正在改变我构建UI的方式:

if(role =='Admin')myComp.visible = false;

...基于从DB返回的内容到完全动态的UI。我现在正在构建最好的方法。

我已经阅读了基于角色的访问控制,并了解服务器在用户通过身份验证后生成UI是最好的,但除了重新整理后端以存储MXML之外,还有更好的方法吗?接近?

拥有一个具有以下属性的Permissions对象是不错的主意:

showTabOne:Boolean = true; allUserToEditGrids:Boolean = false;

组件可见性和includeInLayout属性将绑定到这些值。

UI还允许用户创建新角色并设置权限。

我看到的唯一缺点是,每次添加新功能时,都必须重新编译应用程序以更新绑定。

非常感谢任何提示。

谢谢!

3 个答案:

答案 0 :(得分:1)

权限对象很好,如果你有足够复杂的策略,将它抽象到自己的类中是很自然的。关于重新编译 - 绑定可以在运行时设置(BindingUtils),也许你可以使用它来避免它。

不确定是什么
  

重新做整个后端存储   MXML

正常的方式是在验证之后组成的MXML控件,确实。

答案 1 :(得分:1)

请注意,有人可以欺骗feed或flashvar来创建权限对象,以便在客户端应用程序中获取所需的凭据,从而允许他们查看/编辑所谓的受限内容/区域。

对此的一个好方法是,在对用户和角色进行服务器身份验证后,返回一个清单xml,用于定义用户可以看到ui的哪个部分并绑定到这些属性。

您可以进一步采取安全措施,并在用户导航到该部分时,在运行时加载Flex模块中的受限区域。在从服务器返回模块请求之前,验证用户加载该模块的权限,如果他们未登录或没有该模块所需的角色,则返回错误代码。

为动态视图生成存储mxml服务器端并不是一种可靠的方法。是的,你可以,不,你。除非您实施良好的缓存机制,否则非常简单地使用该站点会使服务器速度降低。

有关详细信息,请参阅Web-tier compilation of MXML files,因为这是一个有趣的概念。

答案 2 :(得分:0)

查看描述它的Flex Chimpthis article