TsgcWebSocketHTTPServer › Olaylar › OnBeforeCommand
İsteğin incelenebilmesi, yetkilendirilebilmesi veya 401 yanıtıyla kısa devre yaptırılabilmesi için OnCommandGet veya OnCommandOther'dan önce tetiklenir.
property OnBeforeCommand: TsgcWSOnBeforeCommand;
// TsgcWSOnBeforeCommand = procedure(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions) of object
—
OnBeforeCommand, sunucu isteği OnCommandGet veya OnCommandOther'a dağıtmadan önce her HTTP isteği için çalışır. İsteğin nasıl işlenmesi gerektiğine karar vermek için ARequestInfo'yu (Document, Params, Headers, RemoteIP...) inceleyin ve aOptions değerini buna göre atayın. İsteği 401 yanıtıyla hemen reddetmek için hcoUnauthorized'ı dahil edin (herhangi bir yanıt yazmadan bir uç noktayı korumak için kullanışlıdır), Basic kimlik doğrulamasını zorlamak için hcoAuthorizedBasic'i dahil edin veya normal komut işleyicilerinin çalışmasına izin vermek için kümeyi boş bırakın. Olay, aynı sunucuda genel ve kimlik doğrulamalı uç noktaları karıştırmak için önerilen yerdir.
procedure OnBeforeCommand(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo;
AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions);
begin
if aRequestInfo.Document = '/public' then
aOptions := [hcoAuthorizedBasic];
end;