protected override void Initialize()
{
this.WellKnownITypeNameAutoRegistration<ContainerControlledLifetimeManager>(WellKnownAppParts.Manager);
this.Container.RegisterType<IApplicationPrincipal, ThreadApplicationPrincipal>(new ContainerControlledLifetimeManager());
var configurationSource = new DictionaryConfigurationSource();
var builder = new ConfigurationSourceBuilder();
builder.ConfigureCryptography()
.EncryptUsingHashAlgorithmProviderNamed(UserManager.HashInstance)
.WithOptions
.UsingHashAlgorithm<Zetetic.Security.Pbkdf2Hash>()
/*.SetAsDefault()*/; // do not want Pbkdf2Hash (low speed algorithm) to be default
builder.UpdateConfigurationWithReplace(configurationSource);
var configurator = new UnityContainerConfigurator(this.Container);
EnterpriseLibraryContainer.ConfigureContainer(configurator, configurationSource);
}