# Directory Service Connector

## Overview

Directory Service Connector overview

| Executable | %ProgramFiles%\QlikView\Directory Service Connector\QVDirectoryServiceConnector.exe |
| --- | --- |
| Data | %ProgramData%\QlikTech\DirectoryServiceConnector |
| Listens to | HTTP: 4730; SNMP: 4731 |
| Uses/Controls | - |
| Used by | QDS, QMS, QVWS |

## Files

### Settings and Configuration

These settings originate from QVPR.

Settings and configuration files

| File | Description |
| --- | --- |
| Config.xml | Configuration file for the service. |
| Resources/&lt;id&gt;.xml | DSP configurations. |

### Logs

Log files

| File | Description |
| --- | --- |
| Log\&lt;date&gt;.txt | Event and error log. |

## DSP Interface

The reason for developing a proprietary Directory Service Provider (DSP) is to have QlikView distribute documents to users in a directory service not supported by default, and to provide group resolution to the web server.

### DirectoryServiceProvider

DirectoryServiceProvider is the interface of the class that plugs into the framework. The members of the interface are listed below.

DirectoryServiceProvidor interface members

| Member | Description |
| --- | --- |
| `LogMessage LogMessageEvent { set; get; }` | Directly after construction, this field is instantiated with a delegate that provides crude logging facilities. |
| `string ProviderName { get; }` | A free-form, preferably descriptive, name of the component that is suitable for the end user. |
| `string ProviderType { get; }` | An installation-unique identifier used internally by the framework and related components. The identifiers used by the supplied providers are `AD`, `NT`, `Local`, and `Custom`. |
| `void SetupPath (string _path, string _username, string _password);` | Creates a node that represents the corresponding directory service node on the specified path. Upon failure, an exception is thrown. |
| `IList<string>GetKnownRootPaths ();` | The returned list should contain one or more viable paths for the methods listed here. |
| `void ClearCache ();` | Clears the cache (if any). |
| `string DomainName { get; }` | A “domain name” associated with the path that is set up. It is used as a qualifier to separate nodes from different providers (for example, the shipped Active Directory provider uses `NetBIOSName` as domain name). |
| `IDictionary<string, string> GetSettings ();` | The dictionary of supported settings has the name of the setting as `key` and the name of the type as `value`. |
| `void SetSetting (string _name, string _value);` | The parsing responsibility is obviously put on the provider. |
| `IList<IDSObject> Search (string [] _pattern, eSearchType _type, string _otherattribute);` | Searches for nodes with attributes matching any of the patterns provided. The attributes are specified with the `type` parameter, which can be one or more values from the enumeration. If `type` is “other”, the last parameter specifies the name of the attribute. The search type “legacyid” is used for backwards compatibility. Search should support patterns containing the wildcard sign “\*”, which matches zero or more characters of any kind. |
| `void Dispose ();` | Called whenever a provider object is released. |
| `IDSObject` | A simple interface for any type of node within the directory service. |
| `string ID { get; }` | Node ID, unique within the instantiated path and consistent over all executions. |
| `string DisplayName { get; }` | Common name of the node in the directory service. |
| `string AccountName { get; }` | Account name associated with the node (if present). |
| `eDSObjectType ObjectType { get; }` | Basic type of the object. |
| `IList<IContainer> MemberOf ();` | A list of all groups that the node is member of. |
| `string GetCustomProperty (string _name);` | Any other property not natively supported by the interface. If not present, null is returned. |
| `string Email { get; }` | [](https://help.qlik.com/en-US/qlikview/Subsystems/Server/Content/QV_Server/QlikView-Server/QVSRM_DirectoryServiceConnector.htm)[](https://help.qlik.com/en-US/qlikview/Subsystems/Server/Content/QV_Server/QlikView-Server/QVSRM_DirectoryServiceConnector.htm)The primary e-mail address associated with the node (if any). |