November Happy Hour will be moved to Thursday December 5th.

Class VirtualRoleRepository<T>

Unsupported INTERNAL API! Not covered by semantic versioning; might change without notice. A repository for keeping a set of role names and their implementation

Inheritance
System.Object
VirtualRoleRepository<T>
Implements
System.IDisposable
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: EPiServer.Security
Assembly: EPiServer.Framework.dll
Version: 9.12.2
Syntax
public class VirtualRoleRepository<T> : IDisposable where T : VirtualRoleProviderBase
Type Parameters
Name Description
T
Remarks

The purpose of this class is to act as a baseclass for implementations. Dependencies should not be taken to this class but instead to abstractions exposed by implementations, such as IVirtualRoleRepository or IVisitorGroupRoleRepository.

All operations on this class is thread-safe.

Constructors

VirtualRoleRepository(IVirtualRoleReplication)

Initializes a new instance of the VirtualRoleRepository<T> class.

Declaration
public VirtualRoleRepository(IVirtualRoleReplication replication)
Parameters
Type Name Description
IVirtualRoleReplication replication

Class that will handle replication of changes

Methods

AfterUnregister(T)

Called after an instance has been unregistered.

Declaration
protected virtual void AfterUnregister(T virtualRoleProvider)
Parameters
Type Name Description
T virtualRoleProvider

The virtual role provider.

Remarks

The base implementation does nothing, subclasses can override this method if any processing is needed after unregistration.

BeforeRegister(T)

Called before an instance is registered.

Declaration
protected virtual void BeforeRegister(T virtualRoleProvider)
Parameters
Type Name Description
T virtualRoleProvider

The virtual role provider.

Remarks

The base implementation does nothing, subclasses can override this method if any processing is needed before registration.

ClearCache(Boolean)

Clears the internal repository cache.

Declaration
public virtual void ClearCache(bool broadcast)
Parameters
Type Name Description
System.Boolean broadcast

if set to true the clear request is broadcasted.

Dispose()

Implements IDisposable

Declaration
public void Dispose()

Dispose(Boolean)

Implements IDisposable

Declaration
protected virtual void Dispose(bool disposing)
Parameters
Type Name Description
System.Boolean disposing

GetAllRoles()

Get a list of all registered virtual roles in this repository.

Declaration
public virtual IEnumerable<string> GetAllRoles()
Returns
Type Description
System.Collections.Generic.IEnumerable<System.String>

A list of virtual role names.

GetDefault()

Returns the globally used repository for storing virtual roles

Declaration
[Obsolete("This serves as a base class. Different concrete types should add their abstarctions in IOC container, like IVirtualRoleRepository.")]
public static VirtualRoleRepository<T> GetDefault()
Returns
Type Description
VirtualRoleRepository<T>

GetRoleNamesByType(Type)

Gets the virtual role names for a specified type.

Declaration
public virtual IEnumerable<string> GetRoleNamesByType(Type type)
Parameters
Type Name Description
System.Type type

Type of the class.

Returns
Type Description
System.Collections.Generic.IEnumerable<System.String>

The role names.

Register(String, T)

Register a new virtual role

Declaration
public virtual void Register(string name, T virtualRoleProvider)
Parameters
Type Name Description
System.String name

Name of the role

T virtualRoleProvider

The implementation

Remarks

This method will overwrite any existing registered virtual roles with the same name. No events will be raised with this overload.

Register(String, Type, Boolean)

Register a new virtual role and return the instance T.

Declaration
public virtual void Register(string name, Type virtualRoleProviderType, bool replicateChanges)
Parameters
Type Name Description
System.String name

Name of the role

System.Type virtualRoleProviderType

The type of the implementation

System.Boolean replicateChanges

True if changes should be replicated to other instances or machines

Remarks

This method will overwrite any existing registered virtual roles with the same name

RegisterInstance(String, T, Boolean)

Registers an instance of VirtualRoleProviderBase.

Declaration
protected virtual void RegisterInstance(string name, T instance, bool replicateChanges)
Parameters
Type Name Description
System.String name

The name.

T instance

The instance.

System.Boolean replicateChanges

if set to true cahgnes are replicated.

SearchRoles(String)

Find virtual roles registered in this repository

Declaration
public virtual IEnumerable<string> SearchRoles(string query)
Parameters
Type Name Description
System.String query

Query to find roles from.

Returns
Type Description
System.Collections.Generic.IEnumerable<System.String>

A list of roles that match the roleName

Remarks

Matching of role names is simply a substring check - if the role contains the string passed in roleName anywhere in the string, it is considered a match.

TryGetRole(String, out T)

Get a role based on name

Declaration
public virtual bool TryGetRole(string name, out T virtualRoleProvider)
Parameters
Type Name Description
System.String name

Name of the role

T virtualRoleProvider

The virtual role provider registered for this name

Returns
Type Description
System.Boolean

True if the role was found

Unregister(String, Boolean)

Unregister a virtual role

Declaration
public virtual void Unregister(string name, bool replicateChanges)
Parameters
Type Name Description
System.String name

The name of the role

System.Boolean replicateChanges

Replicate changes to all instences of this class

Events

ClearedCache

Occurs when the instance has cleared it cached data

Declaration
public event EventHandler ClearedCache
Event Type
Type Description
System.EventHandler

Implements

System.IDisposable

Extension Methods