WMS IP Address Authorization Plug-in Properties
Previous | Next |
WMS IP Address Authorization Plug-in Properties
You can use the WMS IP Address Authorization plug-in to allow or deny access to specific IP addresses or to a group of IP addresses by specifying a subnet address and mask. This plug-in is useful, for example, if you want to allow access only to users on a specific intranet. Or, if you believe there is a security violation on a server, you could quickly enable this plug-in to deny access to the IP address that is violating security. For administration information about this plug-in, see Windows Media Services Help.
There are three interfaces that can be used to configure the WMS IP Address Authorization plug-in programmatically. The IWMSIPEntry interface exposes the following properties.
Property | Description |
Address | Specifies and retrieves an IP address or range of IP addresses that can be used to allow or disallow client connections. |
Mask | Specifies and retrieves an IP address mask. |
The IWMSIPList interface contains a collection of IWMSIPEntry objects and exposes the following methods.
Method | Description |
Add | Adds an IWMSIPEntry object to the IWMSIPList collection. |
Remove | Removes a specific IWMSIPEntry object from the IWMSIPList collection. |
The IWMSIPAdmin interface exposes the following properties.
Property | Description |
AccessListOptions | Retrieves an enumeration value indicating default access permissions for unspecified IP addresses. |
AllowIP | Retrieves an IWMSIPList object containing a collection of IP addresses a client can use to connect to the server. |
DisallowIP | Retrieves an IWMSIPList object containing a collection of IP addresses a client cannot use to connect to the server. |
The following examples illustrate how to use the IWMSIPAdmin interface to retrieve a list of restricted IP addresses.
- Note The administrative user interface included with the plug-in allows restrictions based only on IPv4 addresses. You can use the custom interface exposed by the plug-in to impose restrictions based on IPv6 addresses. For more information see IWMSIPList.Add (Visual Basic .NET).
Visual Basic .NET Example
Imports Microsoft.WindowsMediaServices.Interop Imports System.Runtime.InteropServices Private Sub SetIPAddrPluginProps() ' Declare variables. Dim Server As WMSServer Dim Plugin As IWMSPlugin Dim IPAdmin As IWMSIPAdmin Dim IPList As IWMSIPList Try ' Create a new WMSServer object. Server = New WMSServer() ' Retrieve the IWMSPlugin object for the ' WMS IP Address Authorization plug-in. Plugin = Server.EventHandlers("WMS IP Address Authorization") ' Retrieve the administrative interface for the ' WMS IP Address Authorization plug-in. IPAdmin = Plugin.CustomInterface() ' Configure the plug-in to allow all IP addresses ' except those specifically set to be denied. IPAdmin.AccessListOptions = WMS_IP_ACCESS_OPTIONS.WMS_IP_ACCESS_ALLOW_BY_DEFAULT ' Retrieve the list of banned IP addresses. IPList = IPAdmin.DisallowIP 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; IWMSIPAdmin IPAdmin; IWMSIPList IPList; try { // Create a new WMSServer object. Server = new WMSServerClass(); // Retrieve the IWMSPlugin object for the // IP address authorization plug-in. Plugin = Server.EventHandlers["WMS IP Address Authorization"]; // Retrieve the administrative interface for the // IP address authorization plug-in. IPAdmin = (IWMSIPAdmin)Plugin.CustomInterface; // Configure the plug-in to allow all IP addresses // except those specifically set to be denied. IPAdmin.AccessListOptions = WMS_IP_ACCESS_OPTIONS.WMS_IP_ACCESS_ALLOW_BY_DEFAULT; // Retrieve the list of banned IP addresses. IPList = IPAdmin.DisallowIP; } 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; IWMSIPAdmin* pIPAdmin = NULL; IWMSIPList* pIPList = 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 IP Address Authorization plug-in. varIndex = "WMS IP Address 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 // IWMSIPAdmin interface. hr = pDispatch->QueryInterface(IID_IWMSIPAdmin, (void**)&pIPAdmin); if (FAILED(hr)) goto EXIT; // Configure the plug-in to allow all IP addresses // except those specifically set to be denied. hr = pIPAdmin->put_AccessListOptions(WMS_IP_ACCESS_ALLOW_BY_DEFAULT); if (FAILED(hr)) goto EXIT; // Retrieve the list of banned IP addresses. hr = pIPAdmin->get_DisallowIP(&pIPList); if (FAILED(hr)) goto EXIT; EXIT: // TODO: Release temporary COM objects and uninitialize COM.
See Also
- IWMSIPAdmin Interface
- IWMSIPAdmin Object (C#)
- IWMSIPAdmin Object (Visual Basic .NET)
- IWMSIPEntry Interface
- IWMSIPEntry Object (C#)
- IWMSIPEntry Object (Visual Basic .NET)
- IWMSIPList Interface
- IWMSIPList Object (C#)
- IWMSIPList Object (Visual Basic .NET)
- Programming System Plug-in Properties
Previous | Next |