Delphi 和 REST 具有带和不带身份验证的两种方法

问题描述 投票:0回答:1

我需要有两种方法的 REST 服务:第一个需要授权,第二个对所有人开放(没有身份验证过程)。

如果我放置 TDSHttpService 并与 TDSAuthenticationManager 绑定,那么所有方法都需要进行身份验证(在身份验证事件中我没有有关方法的信息)。 如果我放置两个 TDSHttpService 组件 - 一个带有身份验证管理器,第二个没有身份验证管理器,并且具有不同的上下文(例如),那么可以一起工作(在同一端口上)。 什么是有效的解决方案?

rest delphi datasnap
1个回答
0
投票

TDSAuthenticationManager
有两个事件:
OnUserAuthenticate
OnUserAuthorize
。在身份验证事件中,您检查用户名和密码。如果有效,请向
UserRoles
添加特殊角色(即“MainUser”)。在这两种情况下,将
valid
设置为 True;

您现在可以在其他事件中处理授权,但有一种更简单的方法可以做到这一点:向所有需要身份验证的方法添加

[TRoleAuth('MainUser')]
属性。

© www.soinside.com 2019 - 2024. All rights reserved.