我需要有两种方法的 REST 服务:第一个需要授权,第二个对所有人开放(没有身份验证过程)。
如果我放置 TDSHttpService 并与 TDSAuthenticationManager 绑定,那么所有方法都需要进行身份验证(在身份验证事件中我没有有关方法的信息)。 如果我放置两个 TDSHttpService 组件 - 一个带有身份验证管理器,第二个没有身份验证管理器,并且具有不同的上下文(例如),那么可以一起工作(在同一端口上)。 什么是有效的解决方案?
TDSAuthenticationManager
有两个事件:OnUserAuthenticate
和 OnUserAuthorize
。在身份验证事件中,您检查用户名和密码。如果有效,请向 UserRoles
添加特殊角色(即“MainUser”)。在这两种情况下,将 valid
设置为 True;
您现在可以在其他事件中处理授权,但有一种更简单的方法可以做到这一点:向所有需要身份验证的方法添加
[TRoleAuth('MainUser')]
属性。