WMS Publishing Points ACL Authorization Plug-in Properties
You can use the WMS Publishing Points ACL Authorization plug-in to allow or deny read, write, or create access to specific users, servers, or groups. Read access permits a user to open, play, fast forward, or rewind content. Write access permits a user to use a currently existing push publishing point to do live distribution. Create access permits a user to create publishing points on the server for live distribution. This plug-in is useful when you want to set a global restriction on all content on a specific publishing point or server, or when the content for a publishing point is a live stream. For administration information about this plug-in, see Windows Media Services Help.
There are three interfaces that you can use to configure the WMS Publishing Points ACL Authorization plug-in programmatically. The IWMSAccessControlEntry interface exposes the following properties.
Property |
Description |
---|---|
AccessMask |
Specifies and retrieves an enumeration value indicating the access rights to a publishing point or file system. The access rights enable you to allow or deny read, write, and create access. |
Trustee |
Retrieves the name of the account or logon session to which the access control entry applies. |
The IWMSAccessControlList interface contains a collection of IWMSAccessControlEntry objects and exposes the following methods.
Method |
Description |
---|---|
Add |
Adds a new IWMSAccessControlEntry object to the IWMSAccessControlList collection. |
Remove |
Removes an IWMSAccessControlEntry object from the IWMSAccessControlList collection. |
You can use the IWMSACLCheckAdmin interface to retrieve an IWMSAccessControlList object from which you can retrieve specific IWMSAccessControlEntry objects and specify access rights. This is illustrated by the following examples.
Visual Basic .NET Example
Imports Microsoft.WindowsMediaServices.Interop
Imports System.Runtime.InteropServices
Private Sub SetPPACLPluginProps
' Declare variables.
Dim Server As WMSServer
Dim Plugin As IWMSPlugin
Dim ACLCheckAdmin As IWMSACLCheckAdmin
Dim AccessCtrlList As IWMSAccessControlList
Try
' Create a new WMSServer object.
Server = New WMSServer()
' Retrieve the IWMSPlugin object for the
' WMS Publishing Points ACL Authorization plug-in.
Plugin = Server.EventHandlers("WMS Publishing Points ACL Authorization")
' Retrieve the administrative interface for the
' WMS Publishing Points ACL Authorization plug-in.
ACLCheckAdmin = Plugin.CustomInterface()
' Retrieve the list of access control entries.
AccessCtrlList = ACLCheckAdmin.AccessControlList
' TODO: Use the IWMSAccessControlList collection to retrieve
' a specific IWMSAccessControlEntry object and specify access
' rights.
Catch excCom As COMException
' TODO: Handle COM exceptions.
Catch exc As Exception
' TODO: Handle exceptions here.
Finally
' TODO: Perform clean-up here.
End Try
End Sub
C# Example
using Microsoft.WindowsMediaServices.Interop;
using System.Runtime.InteropServices;
// Declare variables.
WMSServer Server;
IWMSPlugin Plugin;
IWMSACLCheckAdmin ACLCheckAdmin;
IWMSAccessControlList AccessCtrlList;
try
{
// Create a new WMSServer object.
Server = new WMSServerClass();
// Retrieve the IWMSPlugin object for the
// WMS Publishing Points ACL Authorization plug-in.
Plugin = Server.EventHandlers["WMS Publishing Points ACL Authorization"];
// Retrieve the administrative interface for the
// WMS Publishing Points ACL Authorization plug-in.
ACLCheckAdmin = (IWMSACLCheckAdmin)Plugin.CustomInterface;
// Retrieve the list of access control entries.
AccessCtrlList = ACLCheckAdmin.AccessControlList;
// TODO: Use the IWMSAccessControlList collection to retrieve a
// specific IWMSAccessControlEntry object and specify access rights.
}
catch (COMException comExc) {
// TODO: Handle COM exceptions.
}
catch (Exception exc)
{
// TODO: Handle exceptions here.
}
finally
{
// TODO: Perform clean-up here.
}
C++
#include <windows.h>
#include <atlbase.h>
// To access system plug-in interfaces, the
// type library must be imported as shown.
#import "WMSServerTypeLib.dll" no_namespace named_guids \
raw_interfaces_only
// Declare variables and interface pointers.
IWMSServer* pServer = NULL;
IWMSPlugins* pPlugins = NULL;
IWMSPlugin* pPlugin = NULL;
IDispatch* pDispatch = NULL;
IWMSACLCheckAdmin* pACLCheckAdmin = NULL;
IWMSAccessControlList* pAccessCtrlList = NULL;
CComVariant varIndex;
HRESULT hr = S_OK;
// Initialize the COM library and retrieve a pointer
// to an IWMSServer interface.
hr = CoInitialize(NULL);
hr = CoCreateInstance(CLSID_WMSServer,
NULL,
CLSCTX_ALL,
IID_IWMSServer,
(void **)&pServer);
if (FAILED(hr)) goto EXIT;
// Retrieve a pointer to an IWMSPlugins interface
// containing the collection of authorization plug-ins.
hr = pServer->get_EventHandlers(&pPlugins);
if (FAILED(hr)) goto EXIT;
// Retrieve a pointer to the IWMSPlugin interface for the
// WMS Publishing Points ACL Authorization plug-in.
varIndex = "WMS Publishing Points ACL Authorization";
hr = pPlugins->get_Item(varIndex, &pPlugin);
if (FAILED(hr)) goto EXIT;
// Retrieve an IDispatch pointer to the administration
// interface for the plug-in.
hr = pPlugin->get_CustomInterface(&pDispatch);
if (FAILED(hr)) goto EXIT;
// Call QueryInterface() to retrieve a pointer to the
// IWMSACLCheckAdmin interface.
hr = pDispatch->QueryInterface(IID_IWMSACLCheckAdmin, (void**)&pACLCheckAdmin);
if (FAILED(hr)) goto EXIT;
// Retrieve a pointer to the list of access control entries.
hr = pACLCheckAdmin->get_AccessControlList(&pAccessCtrlList);
if (FAILED(hr)) goto EXIT;
// TODO: Use the IWMSAccessControlList collection to retrieve a
// specific IWMSAccessControlEntry object and specify access rights.
EXIT:
// TODO: Release temporary COM objects and uninitialize COM.
See Also
Reference
IWMSAccessControlEntry Interface
IWMSAccessControlEntry Object (C#)
IWMSAccessControlEntry Object (Visual Basic .NET)
IWMSAccessControlList Interface
IWMSAccessControlList Object (C#)
IWMSAccessControlList Object (Visual Basic .NET)
IWMSACLCheckAdmin Object (Visual Basic .NET)