Class AdsiDataFactory
Concrete implementation of the EpiServer.Security.DirectoryDataFactory base class, using ActiveDirectory Services Interface (ADSI) to interface with a LDAP server.
Inherited Members
Namespace: EPiServer.Security
Assembly: EPiServer.Cms.AspNet.dll
Version: 11.20.7Syntax
public class AdsiDataFactory : DirectoryDataFactory
Constructors
AdsiDataFactory()
Initializes a new instance of the AdsiDataFactory class.
Declaration
public AdsiDataFactory()
AdsiDataFactory(String, String, String, AuthenticationTypes, TimeSpan)
Initializes a new instance of the DirectoryDataFactory class.
Declaration
public AdsiDataFactory(string connectionString, string username, string password, AuthenticationTypes connectionProtection, TimeSpan absoluteCacheTimeout)
Parameters
Type | Name | Description |
---|---|---|
System.String | connectionString | The connection string. |
System.String | username | The username. |
System.String | password | The password. |
System.DirectoryServices.AuthenticationTypes | connectionProtection | The connection protection. |
System.TimeSpan | absoluteCacheTimeout | The absolute cache timeout. |
Remarks
Create and initialize an instance of this class for accessing Active Directory data.
Properties
ConnectionProtection
Gets or sets the connection protection.
Declaration
public AuthenticationTypes ConnectionProtection { get; protected set; }
Property Value
Type | Description |
---|---|
System.DirectoryServices.AuthenticationTypes | The connection protection. |
Remarks
Defines the type and level of protection for the Active Directory communications.
ConnectionString
Gets or sets the connection string.
Declaration
public string ConnectionString { get; protected set; }
Property Value
Type | Description |
---|---|
System.String | The connection string. |
Remarks
The string for connecting to the Active Directory server. It should be in the format LDAP://dns.name.for.machine or LDAP://dns.name.for.active.directory.domain
PageSize
Gets or sets the page size
Declaration
public int PageSize { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
Remarks
The maximum number of objects the server can return in a paged search. The default is zero, which means do not do a paged search.
Password
Gets or sets the password.
Declaration
public string Password { get; protected set; }
Property Value
Type | Description |
---|---|
System.String | The password. |
Remarks
The password used, together with the Username, to connect to the Active Directory domain.
Username
Gets or sets the user name.
Declaration
public string Username { get; protected set; }
Property Value
Type | Description |
---|---|
System.String | The user name. |
Remarks
The user name to use for connecting to the Active Directory domain as defined by ConnectionString.
Methods
AddPropertyToLoad(String)
Adds a property to load on access to Active Directory.
Declaration
public override void AddPropertyToLoad(string propertyName)
Parameters
Type | Name | Description |
---|---|---|
System.String | propertyName | Name of the property. |
Overrides
Remarks
This class keeps a list of property names to query for whenever an Active Directory entry is retrieved. By calling this method you can expand this list with custom properties.
ClearCache()
Clears the Active Directory cache.
Declaration
public void ClearCache()
CreateDirectoryDataFromDirectoryEntry(DirectoryEntry)
Creates a directory data object from a directory entry.
Declaration
protected DirectoryData CreateDirectoryDataFromDirectoryEntry(DirectoryEntry entry)
Parameters
Type | Name | Description |
---|---|---|
System.DirectoryServices.DirectoryEntry | entry | The System.DirectoryServices.DirectoryEntry. |
Returns
Type | Description |
---|---|
DirectoryData | A DirectoryData object populated with information from |
Remarks
DirectoryData can be viewed as a Data Transfer Object, craeting an implementation-independent representation of the data to avoid tying the implementetation too tightly to the System.DirectoryServices namespace.
CreateDirectoryDataFromSearchResult(SearchResult)
Creates a directory data instance from search result.
Declaration
protected DirectoryData CreateDirectoryDataFromSearchResult(SearchResult result)
Parameters
Type | Name | Description |
---|---|---|
System.DirectoryServices.SearchResult | result | The result. |
Returns
Type | Description |
---|---|
DirectoryData | The populated DirectoryData instance. |
Remarks
DirectoryData can be viewed as a Data Transfer Object, craeting an implementation-independent representation of the data to avoid tying the implementetation too tightly to the System.DirectoryServices namespace.
CreateDirectoryEntry()
Creates a directory entry.
Declaration
protected DirectoryEntry CreateDirectoryEntry()
Returns
Type | Description |
---|---|
System.DirectoryServices.DirectoryEntry | An initialized System.DirectoryServices.DirectoryEntry |
Remarks
The directory entry is configured with connection string, user credentials etc.
CreateDirectoryEntry(String)
Creates a directory entry.
Declaration
protected DirectoryEntry CreateDirectoryEntry(string rootDistinguishedName)
Parameters
Type | Name | Description |
---|---|---|
System.String | rootDistinguishedName | Distinguished name of the root where the directory entry is used. |
Returns
Type | Description |
---|---|
System.DirectoryServices.DirectoryEntry | An initialized System.DirectoryServices.DirectoryEntry, or null if |
DistinguishedName(Dictionary<String, String[]>)
Gets the distinguisheds name from a dictionary.
Declaration
protected string DistinguishedName(Dictionary<string, string[]> properties)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.Dictionary<System.String, System.String[]> | properties | The properties as collected from a System.DirectoryServices.DirectoryEntry. |
Returns
Type | Description |
---|---|
System.String | A string with the distinguished name. |
Remarks
Primarily used internally when converting from DirectoryEntry to DirectoryData.
EscapeDistinguishedName(String)
Escapes reserved characters in the distinguished name.
Declaration
protected string EscapeDistinguishedName(string distinguishedName)
Parameters
Type | Name | Description |
---|---|---|
System.String | distinguishedName | The distinguished name. |
Returns
Type | Description |
---|---|
System.String | The escaped representation of the string. |
Remarks
The following characters will be escaped by prefixing them with a backslash (): Carriage return, Linefeed, '+', '', '"', '<', '>', ';', '/'
FindAll(String, SearchScope, String)
Finds all directory entries that match the filter criteria.
Declaration
public override IList<DirectoryData> FindAll(string filter, SearchScope scope, string sortByProperty)
Parameters
Type | Name | Description |
---|---|---|
System.String | filter | The LDAP filter. |
System.DirectoryServices.SearchScope | scope | The search scope. |
System.String | sortByProperty | The property to sort directory entries by. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<DirectoryData> | An IList of DirectoryData objects, sorted by the indicated property. |
Overrides
Remarks
If sortByProperty is set to null, the list will be returned without sorting. This method will make use of caching, if the serach has already beem done, the result will be returned without accessing Active Directory.
FindOne(String, SearchScope)
Find on Active Directory entry based on search filter.
Declaration
public override DirectoryData FindOne(string filter, SearchScope scope)
Parameters
Type | Name | Description |
---|---|---|
System.String | filter | The filter, which is a LDAP query. |
System.DirectoryServices.SearchScope | scope | The scope at which to search. |
Returns
Type | Description |
---|---|
DirectoryData | A DirectoryData instance with the entry, or null if the search did not find an entry. |
Overrides
Remarks
This method uses caching to speed up the operation, if the DirectoryData object is found in the cache, no communication with the Active Directory domain will take place.
GetEntry(String)
Gets a specific Active Directory entry as a DirectoryData object.
Declaration
public override DirectoryData GetEntry(string distinguishedName)
Parameters
Type | Name | Description |
---|---|---|
System.String | distinguishedName | Distinguished name of the entry. |
Returns
Type | Description |
---|---|
DirectoryData | A DirectoryData instance containing the properties defined by PropertiesToLoad. |
Overrides
Remarks
This method uses caching to speed up the operation, if the DirectoryData object is found in the cache, no communication with the Active Directory domain will take place.
Initialize(NameValueCollection)
Initializes an instance of the DirectoryDataFactory class.
Declaration
public override void Initialize(NameValueCollection config)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Specialized.NameValueCollection | config | The configuration data to use. |
Overrides
Remarks
This method is intended to be called from within a providers Initialize method. It will read its settings from the config parameter and initialize this instance. Required settings in config are: connectionStringName = name of the connection string to use for connecting to the Active Directory server. connectionUsername = username for the connection. connectionPassword = password for the connection.
Optional settings in config are: connectionProtection = level of protection and security for the Active Directory connection. None or Secure (default). cacheTimeout = how long cached Active Directory entries stys in the cache. Default is 10 minutes.
SchemaClassName(Dictionary<String, String[]>)
Gets the schema class name from a dictionary.
Declaration
protected string SchemaClassName(Dictionary<string, string[]> properties)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.Dictionary<System.String, System.String[]> | properties | The properties as collected from a System.DirectoryServices.DirectoryEntry. |
Returns
Type | Description |
---|---|
System.String | A string with the schema class name. |
Remarks
Primarily used internally when converting from DirectoryEntry to DirectoryData.
StoreInCache(String, Object)
Stores the data in cache.
Declaration
protected void StoreInCache(string cacheKey, object data)
Parameters
Type | Name | Description |
---|---|---|
System.String | cacheKey | The cache key. |
System.Object | data | The data. |
TryGetDestructive(NameValueCollection, String, out String)
Get value from from config and remove it if found.
Declaration
protected bool TryGetDestructive(NameValueCollection config, string name, out string value)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Specialized.NameValueCollection | config | The collection of configuration values. |
System.String | name | The name of the parameter. |
System.String | value | The value of the parameter. |
Returns
Type | Description |
---|---|
System.Boolean | True if the parameter was found, False otherwise. |