FMS Dev Guide学习笔记(权限控制)

时间:2022-11-06 10:20:50

一、开发交互式的媒体应用程序

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为开头的共享对象写的权限.