/// <summary> /// Carga el servicio de encriptación. /// </summary> /// <param name="services">Colección de servicios.</param> /// <param name="settings">Configuración del servicio de encriptación.</param> /// <returns>IServiceCollection | ApplicationException: si EncryptorSettings es nulo.</returns> internal static IServiceCollection LoadEncryptor( this IServiceCollection services, EncryptorSettings settings) { var config = settings.ToIsNullOrEmptyThrow(nameof(settings)); if (config.Enabled == true) { services.LoadEncryptor(x => { var environment = services.ToEnvironment(); x.SetApplicationName(config.ApplicationName) .ProtectKeysWithDpapi() .SetDefaultKeyLifetime(TimeSpan.FromDays(config.KeyLifetimeFromDays !.Value)); if (!config.PersistKeysToFileSystem.ToIsNullOrEmpty()) { if (!config.PersistKeysToFileSystem.ToIsDirectory()) { Directory.CreateDirectory(config.PersistKeysToFileSystem); } x.PersistKeysToFileSystem(new DirectoryInfo(config.PersistKeysToFileSystem)); } }); } return(services); }
/// <summary> /// Indica si se utilizara el servicio de encriptación. /// </summary> /// <param name="settings">Configuración del servicio.</param> /// <returns>SecurityOptions | ApplicationException: si EncryptorSettings es nulo.</returns> public SecurityOptions WithEncryptor(EncryptorSettings settings) { SecuritySettings.EncryptorSettings = settings; return(this); }