'嗨 -
我正在改变我构建UI的方式:
if(role =='Admin')myComp.visible = false;
...基于从DB返回的内容到完全动态的UI。我现在正在构建最好的方法。
我已经阅读了基于角色的访问控制,并了解服务器在用户通过身份验证后生成UI是最好的,但除了重新整理后端以存储MXML之外,还有更好的方法吗?接近?
拥有一个具有以下属性的Permissions对象是不错的主意:
showTabOne:Boolean = true; allUserToEditGrids:Boolean = false;
组件可见性和includeInLayout属性将绑定到这些值。
UI还允许用户创建新角色并设置权限。
我看到的唯一缺点是,每次添加新功能时,都必须重新编译应用程序以更新绑定。
非常感谢任何提示。
谢谢!
答案 0 :(得分:1)
权限对象很好,如果你有足够复杂的策略,将它抽象到自己的类中是很自然的。关于重新编译 - 绑定可以在运行时设置(BindingUtils),也许你可以使用它来避免它。
不确定是什么重新做整个后端存储 MXML
正常的方式是在验证之后组成的MXML控件,确实。
答案 1 :(得分:1)
请注意,有人可以欺骗feed或flashvar来创建权限对象,以便在客户端应用程序中获取所需的凭据,从而允许他们查看/编辑所谓的受限内容/区域。
对此的一个好方法是,在对用户和角色进行服务器身份验证后,返回一个清单xml,用于定义用户可以看到ui的哪个部分并绑定到这些属性。
您可以进一步采取安全措施,并在用户导航到该部分时,在运行时加载Flex模块中的受限区域。在从服务器返回模块请求之前,验证用户加载该模块的权限,如果他们未登录或没有该模块所需的角色,则返回错误代码。
为动态视图生成存储mxml服务器端并不是一种可靠的方法。是的,你可以,不,你不。除非您实施良好的缓存机制,否则非常简单地使用该站点会使服务器速度降低。
有关详细信息,请参阅Web-tier compilation of MXML files,因为这是一个有趣的概念。
答案 2 :(得分:0)
查看描述它的Flex Chimp和this article。