SkyTeam/Regestrieren.xaml.cs aktualisiert
This commit is contained in:
@@ -64,6 +64,11 @@ namespace SkyTeam
|
|||||||
cmd.Parameters.AddWithValue("@email", emailToCheck);
|
cmd.Parameters.AddWithValue("@email", emailToCheck);
|
||||||
cmd.Parameters.AddWithValue("@password", hashedPassword);
|
cmd.Parameters.AddWithValue("@password", hashedPassword);
|
||||||
cmd.Parameters.AddWithValue("@stadt", CityTextBox.Text);
|
cmd.Parameters.AddWithValue("@stadt", CityTextBox.Text);
|
||||||
|
// Quelle: Microsoft Learn - "DBNull.Value Field"
|
||||||
|
// Link: https://learn.microsoft.com/en-us/dotnet/api/system.dbnull.value
|
||||||
|
// Wenn optionale Felder (wie Anrede oder Geburtsdatum) leer bleiben,
|
||||||
|
// können wir nicht einfach 'null' in C# übergeben. Die Datenbank erwartet explizit
|
||||||
|
// das Objekt 'DBNull.Value', damit die Spalte korrekt als NULL markiert wird
|
||||||
cmd.Parameters.AddWithValue("@anrede", selectedAnrede ?? (object)DBNull.Value);
|
cmd.Parameters.AddWithValue("@anrede", selectedAnrede ?? (object)DBNull.Value);
|
||||||
cmd.Parameters.AddWithValue("@geburtsdatum", selectedDate.HasValue ? selectedDate.Value : (object)DBNull.Value);
|
cmd.Parameters.AddWithValue("@geburtsdatum", selectedDate.HasValue ? selectedDate.Value : (object)DBNull.Value);
|
||||||
|
|
||||||
@@ -72,7 +77,11 @@ namespace SkyTeam
|
|||||||
}
|
}
|
||||||
|
|
||||||
MessageBox.Show("Dein Konto wurde erfolgreich angelegt!");
|
MessageBox.Show("Dein Konto wurde erfolgreich angelegt!");
|
||||||
|
// Quelle: AI Assistant (Gemini)
|
||||||
|
// Idee: Navigation aus einer Page heraus, die in einem Frame gehostet wird.
|
||||||
|
// Kommentar: Die KI hat darauf hingewiesen, dass eine Page (wie die RegistrationPage)
|
||||||
|
// nicht direkt navigieren sollte, wenn sie im MainFrame des MainWindows liegt.
|
||||||
|
// Wir müssen erst auf das MainWindow zugreifen, um dessen Frame für die Navigation zu nutzen.
|
||||||
if (Application.Current.MainWindow is MainWindow mainWindow)
|
if (Application.Current.MainWindow is MainWindow mainWindow)
|
||||||
{
|
{
|
||||||
mainWindow.MainFrame.Navigate(new LogInPage());
|
mainWindow.MainFrame.Navigate(new LogInPage());
|
||||||
@@ -99,6 +108,11 @@ namespace SkyTeam
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
// Quelle: Microsoft Learn - "How to verify that strings are in valid email format"
|
||||||
|
// Link: https://learn.microsoft.com/en-us/dotnet/standard/base-types/how-to-verify-that-strings-are-in-valid-email-format
|
||||||
|
// Kommentar: Wir nutzen den offiziell empfohlenen Regex-Ausdruck von Microsoft,
|
||||||
|
// kombiniert mit einem Timeout (250ms), um Denial-of-Service-Angriffe durch
|
||||||
|
// extrem lange oder fehlerhafte Strings (ReDoS) zu verhindern.
|
||||||
return Regex.IsMatch(email,
|
return Regex.IsMatch(email,
|
||||||
@"^[^@\s]+@[^@\s]+\.[^@\s]+$",
|
@"^[^@\s]+@[^@\s]+\.[^@\s]+$",
|
||||||
RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250));
|
RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250));
|
||||||
|
|||||||
Reference in New Issue
Block a user