Wissen Sie, wie Sie einen benutzerdefinierten Header auf einem TISAPIRequest manuell hinzufügen können?Hinzufügen eines benutzerdefinierten Headers auf einem TISAPIRequest (Delphi 10.1 Datasnap Server)
Diese Klasse (oder die allgemeinste TWebRequest) stellt keine RawHeaders-Eigenschaft bereit, um das Hinzufügen neuer benutzerdefinierter Header bei Bedarf zu ermöglichen.
PS: Ich habe eine unreine Lösung für meine WebRequest ist ein TIdHTTPAppRequest (Datasnap Standalone-Server), weil ich dann eine Helper-Klasse für den Zugriff auf seine private FRequestInfo-Eigenschaft erstellen kann, und von dort Zugriff auf eine RawHeaders, die Ich kann einen neuen Header hinzufügen. Aber ich verwende nur Standalone-Server für Entwicklung und Test, die Produktionsumgebung muss auf IIS-Servern laufen.
TIdHTTPAppRequestHelper = class helper for TIdHTTPAppRequest
public
function GetRequestInfo: TIdEntityHeaderInfo;
end;
implementation
function TIdHTTPAppRequestHelper.GetRequestInfo: TIdEntityHeaderInfo;
begin
Result := FRequestInfo;
end;
procedure TWebModule1.WebModuleBeforeDispatch(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var Token: string;
begin
Response.SetCustomHeader('Access-Control-Allow-Origin','*');
Token := Request.Query;
if Copy(Token, 1, 10) = 'dssession=' then begin
if Request is TIdHTTPAppRequest then begin
TIdHTTPAppRequest(Request).GetRequestInfo.RawHeaders.AddValue('Pragma', Token);
end;
end;
if FServerFunctionInvokerAction <> nil then
FServerFunctionInvokerAction.Enabled := AllowServerFunctionInvoker;
end;
Es ist möglich, einen ähnlichen Code zu schreiben, um das gleiche Ergebnis zu erhalten (einen benutzerdefinierten Header zu WebRequest hinzufügen), wenn der WebRequest eine TISAPIRequest statt THTTPAppRequest ist?.
Vielen Dank.
Danke Remy, ich werde schauen, um diesen ISAPI Filter zu schreiben. –