gpt4 book ai didi

Delphi Datasnap 客户端代码未获得未经授权的异常

转载 作者:行者123 更新时间:2023-12-03 18:40:16 31 4
gpt4 key购买 nike

我正在使用 Delphi 10.1 Berlin Update 2 Enterprise 和 DataSnap 客户端/服务器 REST 框架。

如果我在不调试的情况下运行应用程序并调用用户无权调用的方法,则代码运行时没有任何异常,并且该方法返回空响应。

当以交互方式调试客户端对 DataSnap 服务器方法的调用时,我收到两个关于“未经授权”的弹出异常。

第一个冒泡并被第二个取代。

第二个异常被“吃掉”并且 session /连接简单地关闭,然后该方法返回一个空白结果(例如,如果返回类型是整数,则返回零,而字符串返回类型返回空字符串)。

这发生在 Datasnap.DSClientRest 单元中 ExecuteRequest 方法末尾附近的以下代码部分中:

except
on E: TDSRestProtocolException do
LSessionExpired;
end;

为什么这些异常(例如 TDSRestProtocolException)没有到达我的代码?

我有点认为这是更新 2 的新内容,我记得在更新 2 之前看到这些异常冒泡到我的代码中。

Attached是一个演示问题的骨架示例(由 Delphi 向导生成的标准示例) - 单击按钮,您会得到“”而不是“4321”,因为用户未获得授权 - 但没有运行时异常。

我是 DataSnap 的新手,所以请耐心等待 :-)

提前感谢您的有用回复=)

最佳答案

发生这种情况是因为 DSAuthenticationManager1 组件添加到服务器的 web 模块并且客户端无法进行身份验证。

请通过此检查如何使用身份验证
Adding Authentication and Authorization

关于Delphi Datasnap 客户端代码未获得未经授权的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41928059/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com