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
+21
View File
@@ -218,5 +218,26 @@
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<!-- App-Sperre nach Inaktivität (13.3.5): blockiert die gesamte Oberfläche. -->
<Border Background="#E6101014" IsVisible="{Binding AppLock.IsLocked}">
<Border Width="320" Padding="24" CornerRadius="10"
Background="{DynamicResource SystemControlBackgroundAltHighBrush}"
HorizontalAlignment="Center" VerticalAlignment="Center">
<StackPanel Spacing="12">
<TextBlock Text="🔒" FontSize="28" HorizontalAlignment="Center"/>
<TextBlock Text="LehrerApp gesperrt" FontSize="16" FontWeight="SemiBold"
HorizontalAlignment="Center"/>
<TextBox PlaceholderText="Passwort" PasswordChar="●"
Text="{Binding AppLock.PasswordAttempt}"
KeyDown="OnLockScreenKeyDown"/>
<TextBlock Text="{Binding AppLock.UnlockError}" Foreground="Red" FontSize="12"
HorizontalAlignment="Center"
IsVisible="{Binding AppLock.UnlockError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
<Button Content="Entsperren" Command="{Binding AppLock.UnlockCommand}"
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center"/>
</StackPanel>
</Border>
</Border>
</Panel>
</Window>