TsgcWebSocketHTTPServer事件 › OnBeforeCommand

OnBeforeCommand 事件

在 OnCommandGet 或 OnCommandOther 之前触发,以便对请求进行筛查、授权或直接以 401 响应短路。

语法

property OnBeforeCommand: TsgcWSOnBeforeCommand;
// TsgcWSOnBeforeCommand = procedure(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions) of object

默认值

备注

OnBeforeCommand 在服务器将每个 HTTP 请求分发给 OnCommandGet 或 OnCommandOther 之前运行。检查 ARequestInfo(Document、Params、Headers、RemoteIP 等)以决定请求的处理方式,并相应地分配 aOptions。包含 hcoUnauthorized 可立即以 401 响应拒绝请求(无需自行编写任何响应,即可对端点进行门控),包含 hcoAuthorizedBasic 可强制 Basic 身份验证,或将集合保留为空以让普通命令处理程序运行。此事件是在同一服务器上混合公共端点和已认证端点的推荐位置。

示例


procedure OnBeforeCommand(const aConnection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo;
  AResponseInfo: TIdHTTPResponseInfo; var aOptions: TsgcHTTPCommandOptions);
begin
  if aRequestInfo.Document = '/public' then
    aOptions := [hcoAuthorizedBasic];
end;

返回事件