Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Beiträge

WebStencils wird in RAD Studio 13 noch leistungsfähiger

cg dach webstencils rad 13 250815

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.

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. New Auth Components 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.

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.

RAD Studio 13.1 Florence Now Available See What's New in RAD Studio 13.1 Delphi is 31 - Webinar Replay

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES