Dieser Blogbeitrag basiert auf einer Vorabversion der RAD Studio-Software. Bis zur allgemeinen Verfügbarkeit des Produkts sind keine Funktionen verbindlich.
Mit den bevorstehenden Verbesserungen in RAD Studio 13 wird die Webentwicklung wesentlich einfacher. Wir haben das Kundenfeedback berücksichtigt und führen neue Funktionen ein, mit denen Sie sichere Webanwendungen und -dienste wesentlich schneller erstellen können.
Übersicht
Einfaches Session-Management
Die neue TWebSessionManager-Komponente bietet ein sofort einsatzbereites und erweitertes Session-Management. Unabhängig davon, ob man Cookie-basierte Sessions (Standard), Header-basierte Sessions oder Query-Parameter-Sessions benötigt, stehen alle Session-Daten in WebStencils-Vorlagen über die Syntax @session.xxx zur Verfügung.
Was dies besonders interessant macht, ist die Flexibilität beim Festlegen des Session-Scopings. Dafür lassen sich unbegrenzt viele Sessions, eine Session pro authentifiziertem Benutzer oder sogar eine Session pro Benutzer-IP-Kombination für erhöhte Sicherheit festlegen. Sessions laufen nach einer konfigurierbaren Zeit automatisch ab, und man kann benutzerdefinierte Objekte für jede Session direkt in DataVars speichern, um während der gesamten Anwendung einfach darauf zugreifen zu können.
Der Zugriff ist ganz einfach: TWebRequest.Session stellt die aktuelle Sitzung im Kundencode für Delphi- oder C++ bereit, sodass man sofort mit dem Speichern und Abrufen der benutzerdefinierten Daten beginnen kann, ohne dass dafür Setup-Code benötigt wird.
In WebStencils kann man mit @session.customObject auf Sitzungsdaten zugreifen oder die praktische Kurzform @customObject verwenden, um Objekte aus DataVars abzurufen, ohne die längere Sitzungsreferenz verwenden zu müssen.
Authentifizierung ohne große Mühen
Früher bedeutete Authentifizierung, dass man eine Menge Boilerplate-Code schreiben musste. Das ist jetzt nicht mehr der Fall, denn wir haben zwei gebrauchsfertige Authentifizierer integriert:
- TWebBasicAuthenticator für die standardmäßige HTTP-Basisauthentifizierung
- TWebFormsAuthenticator für benutzerdefinierte HTML-Formular-basierte Anmeldeabläufe
TWebFormsAuthenticator ist besonders clever, denn es übernimmt den gesamten Anmeldeprozess für den Entwickler. Legen Sie einfach Ihre LoginURL-, FailedURL- und HomeURL-Eigenschaften fest, und es leitet nicht authentifizierte Benutzer automatisch auf eine definierte Anmeldeseite weiter, verarbeitet POST-Anmeldedaten und sendet Benutzer mithilfe des returnUrl-Parameters zurück zu der Seite, die sie ursprünglich aufrufen wollten. Der Entwickler muss lediglich das OnAuthenticate-Ereignis implementieren, um die Anmeldedaten anhand des eigenen Benutzerspeichers zu überprüfen.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
procedure TMainWebModule.WebFormsAuthenticatorAuthenticate(Sender: TCustomWebAuthenticator; Request: TWebRequest; const UserName, Password: string; var Roles: string; var Success: Boolean); begin Success := False; Roles := ''; if ValidateUserCredentials(UserName, Password) then begin Success := True; Roles := GetUserRoles(UserName); end; end; |
Rollenbasierte Autorisierung
Bei der Sicherheit geht es nicht nur darum zu wissen, wer die Benutzer sind, sondern auch darum, zu kontrollieren, was sie tun können. Die neue TWebAuthorizer-Komponente bietet flexible rollenbasierte Zugriffskontrolle über Autorisierungszonen. Der Entwickler kann ganze Abschnitte seiner Anwendung mit URL-Mustern schützen und festlegen, welche Benutzerrollen Zugriff haben. Auch lassen sich ganze Abschnitte der Anwendung mit URL-Mustern wie /admin* schützen und mit einer einfachen, durch Kommas getrennten Liste festlegen, welche Benutzerrollen Zugriff haben. Die Autorisierungsebenen bieten eine detaillierte Kontrolle: zkFree für anonymen Zugriff, zkProtected nur für authentifizierte Benutzer oder zkIgnore, um die Verarbeitung vollständig zu überspringen. Bei fehlgeschlagener Autorisierung erfolgt automatisch eine Weiterleitung zur definierten UnauthorizedURL oder es wird ein 403-Status zurückgegeben (wenn der Benutzer authentifiziert ist). In WebStencils-Vorlagen lassen sich nun Inhalte basierend auf Benutzerrollen direkt in eigenen Vorlagen ein- oder ausblenden, indem beispielsweise @session.UserHasRole(‚admin‘) verwendet wird. Das bedeutet, dass sich ganze Abschnitte der eigenen Vorlage basierend auf Benutzerberechtigungen ein- oder ausblenden lassen.
Bessere Hosting-Optionen für Web-Broker-Anwendungen
Darüber hinaus erweitern wir die Einsatzmöglichkeiten für Web-Broker durch FastCGI-Unterstützung, wodurch die Arbeit mit modernen Webservern wie NGINX vereinfacht wird. FastCGI-Anwendungen laufen als separate Prozesse, wodurch sich im Vergleich zu herkömmlichen Ansätzen eine bessere Isolierung und Skalierbarkeit erzielen lässt.
Außerdem gibt es eine verbesserte Protokollierungsunterstützung, die mit dem nativen Protokollierungssystem des eigenen Webservers funktioniert, unabhängig davon, ob man Apache, IIS oder andere Hosting-Umgebungen verwendet.
Fazit
Dies sind nicht nur inkrementelle Verbesserungen, sondern die Bausteine für moderne Webanwendungen. Session-Management, Authentifizierung, Autorisierung und flexible Bereitstellungsoptionen werden in Web Broker integriert, sodass man sich auf die Entwicklung großartiger Funktionen konzentrieren kann, anstatt sich um die Grundlagen zu kümmern.
WebStencils mit HTMX – Kostenloser Leitfaden verfügbar
Wir freuen uns, allen Lesern mitteilen zu können, dass unser kostenloser HTMX- und WebStencils-Leitfaden auch auf Deutsch verfügbar ist und damit unsere bestehenden Sprachoptionen ergänzt. Er enthält zahlreiche Beispiele aus der Praxis und hilfreiche Tipps für die gemeinsame Nutzung von HTMX und WebStencils.
Dieser Blogbeitrag basiert auf einer Vorabversion der RAD Studio-Software. Bis zur allgemeinen Verfügbarkeit des Produkts sind keine Funktionen verbindlich zugesagt.
Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Free Delphi Community Edition Free C++Builder Community Edition







