最终效果:
首先把 flex_security.swc 放进你项目的lib文件中。
如图:
四种权限控制方式:
1. styleName
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="100%" height="100%"
viewSourceURL="http://code.google.com/p/flex-security/source/browse/trunk/flex_security_demo/src/helloworld_by_styleName.mxml"
creationComplete="creationComplete()">
<s:layout>
<s:VerticalLayout horizontalAlign="center"/>
</s:layout>
<fx:Script>
<![CDATA[
import cn.org.rapid_framework.flex_security.SecurityControler;
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
[Bindable]
private var permissionList : Array = ['cc','sq','lb','ta_input'];
protected function creationComplete():void
{
//启动权限控制
SecurityControler.start(null,'visible');
}
]]>
</fx:Script>
<s:HGroup>
<mx:HBox>
<mx:ComboBox id="permInput" dataProvider="{permissionList}"/>
<mx:Button click="SecurityControler.addPerm(permInput.selectedLabel)" label="添加权限" />
<mx:Button click="SecurityControler.removePerm(permInput.selectedLabel)" label="移除权限" />
<mx:Button click="SecurityControler.addAllPerms(new ArrayCollection(permissionList))" label="添加所有权限" />
<mx:Button click="SecurityControler.removeAllPerms()" label="移除所有权限" />
</mx:HBox>
</s:HGroup>
<s:HGroup>
<!-- 通过styleName增加需要权限保护的组件,没有权限将不能进行相关操作 -->
<mx:HBox>
<!-- id要和声明的对应,enabled表示显现出来,由于受到权限的控制,不可启用-->
<mx:Button label="曹操" id="cc" styleName="security(null,enabled)" />
<!-- 没有声明id,那么在security内要写上 -->
<mx:Button label="孙权" styleName="security(sq)"/>
<!-- 注意这个remove属性,这里声明了remove,那么下面的组件就不受security的控制而会显现出来了 -->
<mx:Button label="刘备" styleName="security(lb,remove)"/>
<!-- 这个算是容易点的写法吧 -->
<mx:TextArea id="ta_input" styleName="security"/>
</mx:HBox>
</s:HGroup>
</s:Application>
参考:helloworld_by_styleName
2. manual
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="100%" height="100%"
viewSourceURL="http://code.google.com/p/flex-security/source/browse/trunk/flex_security_demo/src/helloworld_by_manual.mxml"
creationComplete="creationComplete()">
<s:layout>
<s:VerticalLayout horizontalAlign="center"/>
</s:layout>
<fx:Script>
<![CDATA[
import cn.org.rapid_framework.flex_security.SecurityControler;
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
[Bindable]
private var permissionList : Array = ['cc','sq','lb','ta_input'];
protected function creationComplete():void
{
//启动权限控制
SecurityControler.start(null,'visible');
//增加需要权限保护的UI资源
SecurityControler.addSecurityAction(cc);
SecurityControler.addSecurityAction(sq);
SecurityControler.addSecurityAction(lb);
}
]]>
</fx:Script>
<s:HGroup>
<mx:HBox>
<mx:ComboBox id="permInput" dataProvider="{permissionList}"/>
<mx:Button click="SecurityControler.addPerm(permInput.selectedLabel)" label="添加权限" />
<mx:Button click="SecurityControler.removePerm(permInput.selectedLabel)" label="移除权限" />
<mx:Button click="SecurityControler.addAllPerms(new ArrayCollection(permissionList))" label="添加所有权限" />
<mx:Button click="SecurityControler.removeAllPerms()" label="移除所有权限" />
</mx:HBox>
</s:HGroup>
<s:HGroup>
<!-- 被权限控制的按钮,没有权限将看不见下面的相关按钮 -->
<mx:HBox>
<!-- 看见没有,主要还是id和permissionList声明的对应 -->
<mx:Button label="曹操" id="cc"/>
<mx:Button label="孙权" id="sq"/>
<mx:Button label="刘备" id="lb"/>
<mx:TextArea id="ta_input"/>
</mx:HBox>
</s:HGroup>
</s:Application>
参考:helloworld_by_manual
3. interface
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="100%" height="100%"
viewSourceURL="http://code.google.com/p/flex-security/source/browse/trunk/flex_security_demo/src/helloworld_by_interface.mxml"
implements="cn.org.rapid_framework.flex_security.ISecurityMetadata"
creationComplete="creationComplete()">
<s:layout>
<s:VerticalLayout horizontalAlign="center"/>
</s:layout>
<fx:Script>
<![CDATA[
import cn.org.rapid_framework.flex_security.SecurityAction;
import cn.org.rapid_framework.flex_security.SecurityControler;
//注意添加上面的实现---implements="cn.org.rapid_framework.flex_security.ISecurityMetadata"
import cn.org.rapid_framework.flex_security.ISecurityMetadata;
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
[Bindable]
private var permissionList : Array = ['cc','sq','lb','ta_input'];
protected function creationComplete():void
{
//启动权限控制
SecurityControler.start(null,'visible');
}
//这里返回需要权限保护的UI资源
public function getSecurityActions() : Array {
return [
new SecurityAction(cc),
new SecurityAction(sq),
new SecurityAction(lb)
];
}
]]>
</fx:Script>
<s:HGroup>
<mx:HBox>
<mx:ComboBox id="permInput" dataProvider="{permissionList}"/>
<mx:Button click="SecurityControler.addPerm(permInput.selectedLabel)" label="添加权限" />
<mx:Button click="SecurityControler.removePerm(permInput.selectedLabel)" label="移除权限" />
<mx:Button click="SecurityControler.addAllPerms(new ArrayCollection(permissionList))" label="添加所有权限" />
<mx:Button click="SecurityControler.removeAllPerms()" label="移除所有权限" />
</mx:HBox>
</s:HGroup>
<s:HGroup>
<!-- 被权限控制的按钮,没有权限将看不见下面的相关按钮 -->
<mx:HBox>
<!-- 看见没有,主要还是id和permissionList声明的对应 -->
<mx:Button label="曹操" id="cc"/>
<mx:Button label="孙权" id="sq"/>
<mx:Button label="刘备" id="lb"/>
<mx:TextArea id="ta_input"/>
</mx:HBox>
</s:HGroup>
</s:Application>
参考:helloworld_by_interface
4. annotation
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="100%" height="100%"
viewSourceURL="http://code.google.com/p/flex-security/source/browse/trunk/flex_security_demo/src/helloworld_by_annotation.mxml"
creationComplete="creationComplete()">
<s:layout>
<s:VerticalLayout horizontalAlign="center"/>
</s:layout>
<!-- 通过元数据[Protected(id='compId',permission='perm',controlBy='enabled')]确定那个UI组件需要权限保护 -->
<fx:Metadata>
[Protected(id="cc")]
[Protected(id="sq")]
[Protected(id="lb")]
</fx:Metadata>
<fx:Script>
<![CDATA[
import cn.org.rapid_framework.flex_security.SecurityControler;
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
[Bindable]
private var permissionList : Array = ['cc','sq','lb','ta_input'];
protected function creationComplete():void
{
//启动权限控制
SecurityControler.start(null,'visible');
}
]]>
</fx:Script>
<s:HGroup>
<mx:HBox>
<mx:ComboBox id="permInput" dataProvider="{permissionList}"/>
<mx:Button click="SecurityControler.addPerm(permInput.selectedLabel)" label="添加权限" />
<mx:Button click="SecurityControler.removePerm(permInput.selectedLabel)" label="移除权限" />
<mx:Button click="SecurityControler.addAllPerms(new ArrayCollection(permissionList))" label="添加所有权限" />
<mx:Button click="SecurityControler.removeAllPerms()" label="移除所有权限" />
</mx:HBox>
</s:HGroup>
<s:HGroup>
<mx:HBox>
<mx:Button label="曹操" id="cc"/>
<mx:Button label="孙权" id="sq"/>
<mx:Button label="刘备" id="lb"/>
<mx:TextArea id="ta_input"/>
</mx:HBox>
</s:HGroup>
</s:Application>
参考:helloworld_by_annotation
按实际情况抉择使用
- 大小: 4.8 KB
- 大小: 10.8 KB
分享到:
相关推荐
flex 权限 控制 前台 1. 文件的所有权益归上传用户所有 2. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途 3. CSDN下载频道仅提供交流平台,并不能对任何下载内容负责 4. 下载文件中如有侵权或不适当...
综上所述,Flex Security是Flex应用开发中不可或缺的一部分,它涉及到用户界面的可见性和可操作性控制,以及权限模型的建立和实施。理解并熟练掌握这些知识点,对于开发出安全、健壮且用户体验良好的Flex应用程序至...
综上所述,"flex+java权限管理系统"是一个集成了Flex前端技术、Java后端框架的权限管理解决方案,通过合理的架构设计和配置,实现了高效、安全的权限控制。理解并掌握这个系统的配置和实现,对于提升企业级应用开发...
flex实现简单浏览器,flex AIR中HTML控件实现了简单的网页浏览效果
本篇文章将深入探讨如何使用Flex来控制SWF文件,以及相关的关键技术点。 首先,SWF全称是Small Web Format,是Adobe Flash平台用于展示交互式内容、动画或应用程序的文件格式。在Flex应用中,我们经常需要动态加载...
1. 数据访问控制:在Flex中,当用户尝试访问或修改数据时,应检查其是否有相应的权限。例如,只有管理员才能删除用户记录。 2. 功能访问控制:对于特定功能,如设置、管理等,可以创建对应的权限,只有拥有该权限的...
标题中的"FLEX+SSH某水源检测系统完整代码(带登录界面权限控制)"指的是一个基于Flex前端技术,结合SSH(Struts2、Spring2、Hibernate3)后端框架的水资源监测系统的完整源代码,该系统包含了用户登录界面以及权限...
flex4 简单增删改实例 使用mysql数据flex4 简单增删改实例 使用mysql数据flex4 简单增删改实例 使用mysql数据flex4 简单增删改实例 使用mysql数据flex4 简单增删改实例 使用mysql数据
在Flex开发中,有时我们需要加载并控制外部的SWF文件,比如实现自定义的播放进度条功能。这个场景常见于创建交互式应用或者多媒体展示。本文将深入探讨如何在Flex中实现对引入SWF文件播放进度的控制。 首先,我们要...
【Flex + Java简单例子】是关于使用Flex与Java进行跨域数据交互的一个基础教程,主要涉及Flex客户端和Java服务器端的配置与开发。这个例子旨在展示如何通过BlazeDS库在Flex前端和Java后端之间建立通信。 首先,我们...
**FLEX简介** FLEX(Flexible Application by Adobe)是由Adobe公司开发的...总的来说,“FLEX简单应用工程”是一个适合初学者的项目,通过实践可以深入理解FLEX的基本概念和开发流程,为今后的RIA开发打下坚实基础。
标题中的“flex画板简单版”指的是一个基于Adobe Flex技术实现的在线绘画应用程序。Flex是一种开源的、基于ActionScript的框架,用于构建富互联网应用程序(RIA)。它允许开发者使用MXML和ActionScript来构建交互式...
标题 "flex air简单的通讯录" 暗示了这是一个基于Adobe Flex和Adobe AIR技术开发的简单通讯录应用程序。Flex是用于构建富互联网应用程序(RIA)的开源框架,它使用MXML和ActionScript作为主要开发语言。AIR(Adobe ...
4. **运行FlexSecurity.bat**:在解压文件后直接运行FlexSecurity.bat,意味着它会自动执行一些脚本来调整Flex应用的安全配置。这通常包括创建或修改`crossdomain.xml`文件,该文件定义了跨域策略,允许Flex应用从...
权限管理可能通过Spring Security或自定义的解决方案来实现,以控制用户的登录、权限验证和操作权限。 6. **db文件夹**: 这个文件夹可能包含了数据库相关的配置、脚本或者实体类,如数据库连接配置、数据表结构定义...
flex相册flex相册flex相册flex相册flex相册flex相册flex相册flex相册flex相册
flex测试页,简单测试flex相关属性,做个备忘,以便日后使用。