FMS Dev Guide学习笔记(权限控制)
一、开发交互式的媒体应用程序
1.关于访问(权限)控制
当一个用户访问服务器的时候,默认情况下,他可以访问所有的流媒体文件和共享对象.但是你可以使用服务端ActionScript为流媒体文件和共享对象创建一个动态访问控制表(ACL).你可以控制谁有权限创建、读取或者更新共享对象或者流媒体文件.
当一个客户端连接上服务器,服务端脚本(main.asc或者你的应用程序名.asc)被传递进一个客户端对象.每个客户端对象拥有readAccess和writeAccess属性.你可以使用这些属性为每个连接的访问进行控制.
2.实现动态访问控制
Client.readAccess和Client.writeAccess属性接收String类型的值.这个值可以包括多个不同的值通过分号隔开,例如:
client.readAccess = "appStreams;/appSO/";
client.writeAccess = "appStreams/public/;appSO/public/";
默认情况下,readAccess和writeAccess被设置成 / ,表示客户端可以访问服务端的每一个stream和共享对象
允许访问流
在main.asc中,添加onConnection()方法指定一个服务端得目录:
application.onConnect = function(client, name) {
// give this new client the same name as passed in
client.name = name;
// give write access
client.writeAccess = "appStreams/public/";
// accept the new client's connection
application.acceptConnection(client);
}
这个main.asc文件准许全部以appStreams/public为开头的URI访问
拒绝访问流
在main.asc文件中,添加一个onConnect()方法为client.writeAccess指定一个null值:
application.onConnect = function(client, name) {
...
// deny write access to the server
client.writeAccess = "";
}
为共享对象定义访问权限
在main.asc文件中,添加onConnect()方法指定共享对象名称,使用相同的URI命名规则:
application.onConnect = function(client, name) {
...
client.writeAccess ="appSO/public/";
}
这就给了客户端对所有以appSO/public为开头的共享对象写的权限.