设置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

时间: 2024-10-10 05:13:16

设置TDSAuthenticationManager属性对DataSnap服务端的接口授权的相关文章

使用TRoleAuth类对DataSnap服务端的接口授权

使用Troleauth类,一种类似注视的代码进行授权,也是最简单和方便的方式,实现如下: unit ServerMethodsUnit1; interface uses System.SysUtils, System.Classes, System.Json, Datasnap.DSServer, Datasnap.DSAuth, DataSnap.DSProviderDataModuleAdapter; type TServerMethods1 = class(TDSServerModule)

DataSnap服务端的接口认证

在服务端只要实现DSAuthenticationManager1组件的OnuserAuthenticate事件,我们就可以完成客户端接入接口的认证,他的事件如下: procedure TServerContainer1.DSAuthenticationManager1UserAuthenticate( Sender: TObject; const Protocol, Context, User, Password: string; var valid: Boolean; UserRoles: T

Datasnap 服务端 (Server)Session 管理

Datasnap 服务端 (Server)Session  管理:  http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Server_Side_Session_Management 获取当前线程的会话(Session)--Getting the Current Thread's Session From a server method, for example, you can obtain the current thread's sessio

python的flex服务端数据接口开发

python的flex服务端数据接口开发 python 如果给flex提供服务端,需要提供一个网关和一个可供客户端(flex)调用的类.这方面我更加推荐用twisted来写这个网关,因为twisted有很好的异步机制. 下面的我写的一个简单的验证用户的python服务端: ______________________________DBServer.py # Copyright (c) 2009-2010 The Newjh Project."""@author: Roy@s

服务端测试之接口测试用例设计

小伙伴们大家好,上一次和大家分享了<服务端测试之接口测试初探>,讲了一些接口测试的基本概念和理论知识.在上次的分享中,简单提到了接口测试用例设计包含的几个方面.本期我将在上次分享的基础上,和各位小伙伴一起具体看看这几个方面都是什么,在实际的项目中应该如何使用. 一.功能性用例设计 之前讲过,服务端的接口是和客户端的功能相对应的,对功能的验证,可以参照接口说明文档来进行.概括起来讲,就是我们需要验证接口说明文档中提到的各种情况,保证这些情况下接口的返回和最初设计的是一样的,这样我们就可以认为该接

如何跟踪datasnap 服务端日志

1.在服务器端主窗体上显示服务器的执行情况,主窗体默认单元文件是Unit1.pas 2.一个TMEMO到窗体上, 3.在数据模块单元,ServerMethod1上放一个SQLMonitonr控件,ServerMethod1.pas的uses 里加上unit1,因为要访问MEMO. 日志可以输出到文本,也可以通过MEMO控件显示出来. 输出到文本: 设置SQLMonitonr控件FILENAME属性:c:\log.txt   4.输出到主窗体的MEMO 设置SQLMonitonr控件的OnLogT

datasnap服务端与客户端的对象传递

datasnap 2010 利用JSON序列化和反序列化任何类型的对象 分类:            midas2011-02-04 15:471100人阅读评论(1)收藏举报 json2010marshallingdelphiintegerstring 先简单介绍下什么叫marshalling? marshalling有点类似于序列化,它指的是一个转换的过程.将一个对象用一种适当的数据格式保存或转换.它一般用于不同两个程序间的通信和数据交换.与之对应的Unmarshalling故名思意也就是类

服务端调用接口实例

前言: 在做小程序的开发时需要获取用户的openId用来做唯一标识,来获取对应用户的相关数据 官方的文档说明上有四个必须传的参数 其中appId和appSecret可在自己的微信公众号平台上获取,同时这些也是属于私密信息,应该妥善保管的,因为微信手机客户端是很容易反编译获取到这些信息的,所以在前端的ajax请求将这些参数传到后台是不可取的,最好的方式是将这两个参数在后台传入,然后发送请求至官方接口 1.模拟Http请求 package com.btw.util; import java.io.I

钉钉服务端api接口使用

原文链接:http://www.cnblogs.com/xiaosongJiang/p/9991573.html 第一步:注册钉钉企业账号 打开链接:https://oa.dingtalk.com/#/login,注册账号即可 第二步:创建应用 以创建e应用为例: 还需要授权一个开发人员,并获取CorpSecret,需要把corpId和CorpSecret作为参数请求api接口获取AccessToken,后面的所有接口都需要AccessToken 第三步:接入接口 一.获取token 1 con