Datensicherheit: Backup, Verschlüsselung, App-Sperre (Kapitel 13.3)

Automatisches rollierendes Backup der Datenbank beim Start mit
Wiederherstellung über die Einstellungen, versionierte Schema-Migration,
optionale Passwort-Verschlüsselung der LiteDB-Datei und eine App-Sperre
nach Inaktivität mit eigenem Passwort.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 13:07:36 +02:00
co-authored by Claude Sonnet 5
parent db1afff7e4
commit 48d07a2b99
25 changed files with 1228 additions and 21 deletions
@@ -0,0 +1,20 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:LehrerApp.Desktop.ViewModels"
x:Class="LehrerApp.Desktop.Views.DbPasswordPromptWindow"
x:DataType="vm:DbPasswordPromptViewModel"
Title="LehrerApp Datenbank entsperren"
Width="360" SizeToContent="Height"
CanResize="False" WindowStartupLocation="CenterScreen">
<StackPanel Margin="24" Spacing="12">
<TextBlock Text="🔒" FontSize="28" HorizontalAlignment="Center"/>
<TextBlock Text="Datenbank ist passwortgeschützt" FontSize="15" FontWeight="SemiBold"
HorizontalAlignment="Center" TextWrapping="Wrap"/>
<TextBox PlaceholderText="Passwort" PasswordChar="●"
Text="{Binding Password}" KeyDown="OnKeyDown" x:Name="PasswordBox"/>
<TextBlock Text="{Binding Error}" Foreground="Red" FontSize="12" HorizontalAlignment="Center"
IsVisible="{Binding Error, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
<Button Content="Entsperren" Command="{Binding UnlockCommand}"
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center"/>
</StackPanel>
</Window>