如何使用datasnap获取作为标头传递的标记?

时间:2016-01-27 11:52:05

标签: delphi http-headers firemonkey indy datasnap

在我的客户端应用程序中,我使用以下代码在标题中添加标记:

RESTRequest.Params.AddItem('Authorization', 'Bearer ' + MyToken, TRESTRequestParameterKind.pkHTTPHEADER, [TRESTRequestParameterOption.poDoNotEncode]);

我想使用datasnap在我的服务器中获取此令牌。

我尝试过使用herethe second answer to this question的答案,但没有成功。

有可能吗?

我该怎么做?

修改

我可以验证Datasnap执行TIdCustomHTTPServer.DoParseAuthentication以及DoParseAuthentication调用FOnParseAuthentication是否已分配。

那么,我怎样才能破解Datasnap分配我自己的OnParseAuthentication

我认为这可以解决我的问题。

1 个答案:

答案 0 :(得分:3)

我有同样的问题。如果使用Authentication头,那么我们得到EIdHTTPUnsupportedAuthorisationScheme错误,我需要设置OnParseAuthentication。我刚刚开始研究这个问题,在测试应用程序“桌面”中我可以做到以下几点。

procedure TMainForm.FormCreate(Sender: TObject);
begin
  FServer := TIdHTTPWebBrokerBridge.Create(Self);
  FServer.OnParseAuthentication := DoParseAuthentication;// <-added this line
end;

现在我需要弄清楚如何更新ASAPI dll来做同样的事情。