You are on page 1of 2

Library Kata Benutzeranmeldung

Entwickeln Sie eine Bibliothek, mit der Benutzeranmeldungen bei Websites verwaltet werden knnen. Der Kontrakt fr die Leistungen der Bibliothek soll so aussehen:
interface IRegistrierung { void Registrieren(string email, string passwort, string nickname); void Besttigen(string registrierungsnummer); } interface IAnmeldung { string Anmelden(string anmeldename, string passwort); bool Ist_Anmeldung_gltig(string token); void Rcksetzung_des_Passworts_beantragen(string email); void Passwort_zurcksetzen(string email); } interface IVerwaltung { Benutzer Aktueller_Benutzer(string token); void Umbenennen(string benutzerId, string email, string nickname); void Passwort_ndern(string benutzerId, string passwort); void Lschen(string benutzerId, string passwort); } class Benutzer { string Id; string Email; string Nickname; DateTime Registrierungsdatum; DateTime LetzteAnmeldung; DateTime LetzteAktualisierung; }

Neue Benutzer registrieren sich zunchst. Sie mssen mindestens ihre Email-Adresse angeben. Wenn kein Passwort gewhlt wurde, generiert die Registrierung eines, das der Benutzer spter ndern kann. Wer sich registriert, bekommt eine Registrierungsemail geschickt mit einem Link zur Besttigung, in dem eine Registrierungsnummer enthalten ist. Erst wenn die Registrierung mit dieser Nummer besttigt ist, ist der Benutzer permanent im System (Benutzer.Besttigt ist dann true).

http://ccd-school.de

Die Anmeldung erfolgt mit Email-Adresse oder Nickname und Passwort nach Besttigung. Ist sie erfolgreich, liefert sie ein Token zurck. Das kann spter immer wieder bei Bedarf zur Prfung vorgelegt werden, ob Anfragen von einem Client gltig sind. Zu diesem Zweck sollte das Token so beschaffen sein, dass Clients sie nicht flschen knnen. Fr den Rest der Welt ist das Token opaque. Wer sein Passwort vergessen hat, kann eine Zurcksetzung beantragen. Es wird dann eine Nachricht an die Email-Adresse gesendet, in der ein Link steht, ber den man ein neues Passwort anfordern kann. Wird der angeklickt, wird ein Passwort generiert und an die beantragende EmailAdresse versandt. Benutzer knnen ihre Anmeldedaten verndern. Sie greifen darauf ber ihr Token zu, das sie bei der Anmeldung bekommen. Anschlieend werden die Benutzerdaten ber eine interne Id identifiziert; Benutzer sind mithin Entitten, deren Daten bis auf die Id vernderbar sind.

Daten
Wie die Benutzerdaten gespeichert werden, soll nicht vorgeschrieben werden. In jedem Fall jedoch drfen Passworte nicht im Klartext in der Benutzerdatenbank stehen. Unbesttigte Registrierungen sollten ein Verfallsdatum bekommen und danach automatisch gelscht werden. Die Bibliothek ist mit einigen Angaben zu konfigurieren, z.B. Verbindungsdaten fr die Benutzerdatenbank SMTP-Server und -Konto URLs fr Seiten, auf die in Emails verwiesen wird

Wie die Konfigurationsdaten gespeichert werden, wird ebenfalls nicht vorgegeben.

http://ccd-school.de