TsgcTURNServer › Olaylar › OnSTUNRequestAuthorization
Kimliği doğrulanmış bir istek geldiğinde tetiklenir; gelen Username/Realm ile ilişkili parolayı sağlayın.
property OnSTUNRequestAuthorization: TsgcSTUNRequestAuthorizationEvent;
// TsgcSTUNRequestAuthorizationEvent = procedure(Sender: TObject; const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string; var Password: string) of object
—
Gelen MESSAGE-INTEGRITY özniteliği ayrıştırıldıktan sonra ancak doğrulanmadan önce, kimliği doğrulanmış her STUN Binding Request ve her TURN yöntemi (ALLOCATE, REFRESH, CREATE-PERMISSION, CHANNEL-BIND, Send-Indication) için tetiklenir. aUsername ve aRealm istekten decode edilir; TURN long-term credentials için realm, TURNOptions.Authentication.LongTermCredentials.Realm ile eşleşir. O kullanıcıyla ilişkili parolayı Password var-parametresine atayın; sunucu daha sonra HMAC anahtarını hesaplar ve hesaplanan bütünlük değeri eşleşmediğinde isteği kabul eder veya bir 401 Unauthorized yanıtıyla yanıtlar. Kullanıcıyı reddetmek için Password'ü boş bir dize olarak bırakın, bu da bir 401 yanıtı verir. Bu işleyici, NotifyEvents başka bir mod seçmedikçe dinleyici iş parçacığında çalışır — kısa ve iş parçacığı güvenli tutun.
procedure TForm1.OnSTUNRequestAuthorization(Sender: TObject;
const aRequest: TsgcSTUN_Message; const aUsername, aRealm: string;
var Password: string);
begin
if (aUsername = 'user') and (aRealm = 'esegece.com') then
Password := 'password'
else
Password := '';
end;