设置TDSAuthenticationManager属性对DataSnap服务端的接口授权

先实现TDSAuthenticationManager的OnUserAuthticate事件对客户端认证:

procedure TServerContainer1.DSAuthenticationManager1UserAuthenticate(
  Sender: TObject; const Protocol, Context, User, Password: string;
  var valid: Boolean; UserRoles: TStrings);
begin
  { TODO : Validate the client user and password.
    If role-based authorization is needed, add role names to the UserRoles parameter  }

  if (User = 'Admin') and (Password = '123456') then
  begin
    valid := True ;
    UserRoles.Add('AdminGroup'); //加入到AdminGroup组别
  end else
  if (User = 'Guest') and (Password = '123456') then
  begin
    valid := True ;
    UserRoles.Add('GuestGroup'); //加入到GuestGroup组别
  end else
  valid := False ;
end;

现在设置接口授权,只要对TDSAuthenticationManager的Roles属性进行设置即可:

我们分别对自带的2个方法分配了权限,设置完成编译即可!

编译环境:Delphi XE7

加入DataSnap高级交流群439992010,即可下载本DEMO

原文地址:https://www.cnblogs.com/Kim53622744/p/4403563.html