2013-05-21 10 views
5

Czy można zmienić kod odpowiedzi HTTP na serwerze DataSnap (Delphi XE3), gdy autoryzacja użytkownika kończy się niepowodzeniem? Obecnie powraca HTTP/1.1 500 Wewnętrzny błąd serwera, który może wystąpić w wielu innych sytuacjach i nie pomaga w opisaniu problemu.Czy można zmienić kod odpowiedzi, gdy autoryzacja użytkownika kończy się niepowodzeniem na serwerze?

Czy przy tej samej idei można zmienić domyślną treść odpowiedzi? Obecnie powraca {"error": "USER nie ma uprawnień do wykonania żądanej akcji."}, co jest w porządku, ale chciałbym zwrócić niestandardowy obiekt JSON, jeśli to możliwe.

Dziękujemy za poświęcony czas!

Odpowiedz

5

skończyło się na wykonywanie kodu, który wyglądał jak ten w TDSAuthenticationManager.OnUserAuthorize


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

Jest to możliwe, aby uzyskać THTTPDSResponse wewnątrz serverclass? Np .:

TServerClass1.EchoString(val: string); 
begin 
    GetDSResponse.Header.Add('someheader'); 
end; 
Powiązane problemy