@inject ILogger Logger

Sicurezza e Privacy

Configurazioni per la sicurezza dei dati e la gestione delle credenziali.

Crittografia

Gestione della crittografia delle credenziali.

Data Protection API Attiva
Le credenziali sono crittografate utilizzando la Data Protection API di .NET.
Stato Crittografia: Attiva
Algoritmo: AES-256
Attenzione: La rigenerazione delle chiavi renderĂ  inaccessibili le credenziali esistenti
Audit e Logging

Configurazione del logging di sicurezza.

Connessioni Sicure

Impostazioni per le connessioni di rete.

Nota: Disabilitare la validazione SSL solo in ambienti di sviluppo sicuri.
Backup Sicurezza

Configurazione dei backup di sicurezza.

@if (securitySettings.AutoBackupEnabled) {
Prossimo backup automatico: Domani alle 02:00
}
Azioni Critiche
Pulizia Cache Credenziali

Pulisce la cache delle credenziali in memoria.

Reset Configurazione Sicurezza

Ripristina le impostazioni di sicurezza ai valori predefiniti.

@code { [Parameter] public EventCallback<(string message, string type)> OnShowToast { get; set; } private bool isRegeneratingKeys = false; private SecuritySettings securitySettings = new() { LogCredentialAccess = true, LogDataTransfers = true, LogFailedOperations = true, LogRetentionDays = 30, EnforceHttps = true, ValidateSslCertificates = true, ConnectionTimeoutSeconds = 30, AutoBackupEnabled = false, EncryptBackups = true, BackupRetentionDays = 30 }; private async Task SaveSecuritySettings() { try { // Implementazione semplificata - in produzione salvare nel database o file di configurazione await Task.Delay(500); await OnShowToast.InvokeAsync(("Impostazioni di sicurezza salvate", "success")); } catch (Exception ex) { Logger.LogError(ex, "Errore salvataggio impostazioni sicurezza"); await OnShowToast.InvokeAsync(("Errore salvataggio impostazioni", "error")); } } private async Task RegenerateKeys() { try { isRegeneratingKeys = true; StateHasChanged(); // Simula rigenerazione chiavi await Task.Delay(2000); await OnShowToast.InvokeAsync(("Chiavi di crittografia rigenerate", "success")); } catch (Exception ex) { Logger.LogError(ex, "Errore rigenerazione chiavi"); await OnShowToast.InvokeAsync(("Errore rigenerazione chiavi", "error")); } finally { isRegeneratingKeys = false; StateHasChanged(); } } private async Task ClearCredentialCache() { try { // Implementazione semplificata await Task.Delay(500); await OnShowToast.InvokeAsync(("Cache credenziali pulita", "success")); } catch (Exception ex) { Logger.LogError(ex, "Errore pulizia cache"); await OnShowToast.InvokeAsync(("Errore pulizia cache", "error")); } } private async Task ResetSecuritySettings() { try { securitySettings = new SecuritySettings { LogCredentialAccess = true, LogDataTransfers = true, LogFailedOperations = true, LogRetentionDays = 30, EnforceHttps = true, ValidateSslCertificates = true, ConnectionTimeoutSeconds = 30, AutoBackupEnabled = false, EncryptBackups = true, BackupRetentionDays = 30 }; await Task.Delay(300); await OnShowToast.InvokeAsync(("Impostazioni di sicurezza ripristinate", "info")); StateHasChanged(); } catch (Exception ex) { Logger.LogError(ex, "Errore reset impostazioni"); await OnShowToast.InvokeAsync(("Errore reset impostazioni", "error")); } } private class SecuritySettings { public bool LogCredentialAccess { get; set; } public bool LogDataTransfers { get; set; } public bool LogFailedOperations { get; set; } public int LogRetentionDays { get; set; } public bool EnforceHttps { get; set; } public bool ValidateSslCertificates { get; set; } public int ConnectionTimeoutSeconds { get; set; } public bool AutoBackupEnabled { get; set; } public bool EncryptBackups { get; set; } public int BackupRetentionDays { get; set; } } }