TsgcSTUNServer › 事件 › OnSTUNRequestAuthorization
当 Binding Request 需要身份验证时触发;提供与传入 Username/Realm 关联的密码。
property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object
—
每次经过身份验证的绑定请求触发一次,在传入的 MESSAGE-INTEGRITY 属性被解析之后、验证之前触发。aUsername 和 aRealm 从请求中解码(短期凭据的 realm 为空)。将与该用户关联的密码分配给 Password 变参数;然后服务器计算 HMAC 密钥,当计算出的完整性值不匹配时,接受请求或用 401 Unauthorized 响应。将 Password 保留为空字符串以拒绝用户,这也会产生 401 响应。此处理程序在监听线程上运行,除非 NotifyEvents 选择了另一种模式,请保持简短且线程安全。
procedure TForm1.OnSTUNRequestAuthorization(Sender: TObject;
const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string;
var Password: string);
begin
if SameText(aUsername, 'alice') then
Password := 'secret'
else
Password := '';
end;