diff --git a/SkyTeam/AdminLoginPage.xaml.cs b/SkyTeam/AdminLoginPage.xaml.cs index 1be037a..f8d6f47 100644 --- a/SkyTeam/AdminLoginPage.xaml.cs +++ b/SkyTeam/AdminLoginPage.xaml.cs @@ -9,6 +9,10 @@ namespace SkyTeam { public partial class AdminLoginPage : Page { + // Quelle: Microsoft Learn +// Nutzung eines "Expression bodied members" (=>) für den Konstruktor +// Das macht Methoden oder Konstruktoren, die nur aus einer einzigen Zeile bestehen, +// deutlich kompakter und besser lesbar public AdminLoginPage() => InitializeComponent(); private void AdminLogin_Click(object sender, RoutedEventArgs e) @@ -33,8 +37,16 @@ namespace SkyTeam string storedHash = reader.GetString("PasswortHash"); int dbId = reader.GetInt32("Id"); + // Quelle: Stack Overflow + // Genau wie beim normalen User-Login prüfen wir das Passwort lokal + // über die BCrypt-Bibliothek. Ein direkter Abgleich in der SQL-Datenbank + // (WHERE PasswortHash = @hash) ist unmöglich, da BCrypt dynamische Salts verwendet if (BCrypt.Net.BCrypt.Verify(AdminPassBox.Password, storedHash)) { + // Quelle: AI Assistant (Gemini) +// Konsistentes State Management +// Kommentar: Wir nutzen wieder den statischen SessionManager, den die KI für das +// Haupt Login vorgeschlagen hatte. So weiß das AdminDashboard sofort, wer eingeloggt ist SessionManager.CurrentUserId = dbId; SessionManager.CurrentUserName = AdminUserBox.Text;