Persistarea Datelor cu ProtectedLocalStorage
În Blazor WebAssembly, ProtectedLocalStorage oferă o metodă sigură pentru a salva și citi date din browser, criptând automat informațiile salvate.
🔐 Ce este ProtectedLocalStorage?
ProtectedLocalStorage face parte din Microsoft.AspNetCore.Components.WebAssembly.ProtectedBrowserStorage. Este un wrapper peste localStorage care folosește protecție criptografică pentru date.
✅ Avantaje
- 
Datele sunt stocate local, fără apeluri la server.
 - 
Sunt criptate automat cu DataProtection.
 - 
Ideal pentru preferințe de utilizator, teme, valori temporare.
 
🧪 Exemplu: Salvarea unei teme (light/dark)
1️⃣ Adaugă serviciul în Program.cs
builder.Services.AddScoped<ProtectedLocalStorage>();
2️⃣ Creează un component simplu:
@inject ProtectedLocalStorage localStorage
<h3>Selectează tema:</h3>
<select @onchange="SaveTheme">
    <option value="light">Light</option>
    <option value="dark">Dark</option>
</select>
<p>Tema curentă: @theme</p>
@code {
    private string theme;
    protected override async Task OnInitializedAsync()
    {
        var result = await localStorage.GetAsync<string>("user-theme");
        if (result.Success)
        {
            theme = result.Value;
        }
    }
    private async Task SaveTheme(ChangeEventArgs e)
    {
        theme = e.Value.ToString();
        await localStorage.SetAsync("user-theme", theme);
    }
}
🧠 Alte exemple de utilizare:
- 
Reținerea limbii alese de utilizator
 - 
Salvarea unui pas curent dintr-un formular
 - 
Personalizarea interfeței
 
🧩 Tips:
- 
ProtectedLocalStorage este asincron – nu uita să folosești await.
 - 
Datele nu se trimit automat către server – doar în browser.
 - 
Nu este potrivit pentru informații critice sau sensibile permanent.
 
🔚 Concluzie
ProtectedLocalStorage este ideal pentru scenarii locale simple, dar sigure, în aplicații Blazor WebAssembly. Ușor de implementat și foarte util pentru o experiență personalizată a utilizatorului.
