2013-05-21 2 views
5

Ist es möglich, den HTTP-Antwortcode in meinem DataSnap-Server (Delphi XE3) zu ändern, wenn die Benutzerautorisierung fehlschlägt? Zur Zeit gibt es HTTP/1.1 500 Interner Server Fehler, der in vielen anderen Szenarien passieren kann, und hilft nicht, das Problem zu beschreiben.Ist es möglich, den Antwortcode zu ändern, wenn die Benutzerautorisierung in einem Datennapserver fehlschlägt?

Entlang der gleichen Idee, ist es möglich, die Standardantwort Körper zu ändern? Derzeit gibt es {"error": "USER ist nicht berechtigt, die angeforderte Aktion auszuführen."}, was in Ordnung ist, aber ich würde gerne ein benutzerdefiniertes JSON-Objekt zurückgeben, wenn möglich.

Danke für Ihre Zeit!

Antwort

5

Ich landete die Ausführung von Code, der wie folgt in TDSAuthenticationManager.OnUserAuthorize sah


    if valid = false then 
    begin 
    GetInvocationMetadata.ResponseCode := 403; 
    GetInvocationMetadata.ResponseMessage := JSONResponseObject.ToString; 
    GetInvocationMetadata.ResponseContent := JSONResponseOjbect.ToString; 
    end 
2

Es ist möglich, die THTTPDSResponse in einem Serverclass zu bekommen? Bsp .:

TServerClass1.EchoString(val: string); 
begin 
    GetDSResponse.Header.Add('someheader'); 
end; 
Verwandte Themen