Table of Contents

White-Listing bei der Synchronisation

Grundsätzlich kann jedes Gerät, das pit - Mobile installiert hat und über Zugangsdaten zum Prozess verfügt (Server-Url, Anmeldedaten, etc.), Daten mit pit - FM abgleichen, insofern es der Prozess zulässt. Dies betrifft das Neuanlegen, Verändern und Löschen von Datensätzen.

Ist mehr Kontrolle darüber erwünscht, welches Gerät synchronisieren darf und welches nicht, kann ein White-Listing eingeschaltet werden, das eine Synchronisation nur für bestimmte Geräte zulässt.

Hierfür ist es notwendig, in der settings.ini auf dem Webserver folgende Information hinzuzufügen:

[Globals]
enableWhitelist=true

Daraufhin verwendet der pit - Mobile Server bei einer Synchronisationsanfrage die Klassenformel CheckMobileWhiteList, um zu entscheiden, ob das Gerät zugelassen wird (1) oder nicht (0). Nachfolgend eine Beispielimplementierung:

safe function int CheckMobileWhiteList(string $sDeviceToken, string $sAppId, string $sDeviceId)
{
    var string $sContent;
    var string $sPath;
 
    $sPath = "c:\\Temp\\pm_Registration.txt";
    $sContent = ReadTextFile($sPath);
 
    return StrFind($sContent, ";" + $sAppId + ";", 0) != -1;    
}

Begleitend zu dieser gerätespezifischen Autorisierung ist ein Registrierungsprozess sinnvoll, der die App-ID der neuen Geräte aufnimmt und sie für die spätere Kontrolle vermerkt. Am einfachsten ist dies durch das Einschalten von push-Benachrichtigungen zu realisieren, da nun die App-ID bei der Synchronisationsanfrage übermittelt und über die Klassenformel registerPushNotifications abgelegt werden kann:

safe function string RegisterPushNotification(string $deviceToken, string $contractName, string $contractURL, string $deviceOS, string $deviceOSVersion, string $client, string $lang, string $appID, string $deviceId, string $deviceLocale, string $deviceModel, string $deviceName)
{
    var string $sText;
    var string $sPath;
 
    $sPath = "c:\\temp\\pm_Registration.txt";
    $sText = $deviceId + ";" + $appID + ";" + $deviceOS + ";" + $deviceOSVersion + ";" + $deviceToken + ";" + GetUserId() + "\r\n";
    WriteTextFile($sText,$sPath, 1 + 16);
 
    return "ok";
}

Schlägt die Autorisierung durch das White-Listing fehl, wird folgende Fehlermeldung ausgegeben:

White Listing Error

Siehe auch

Dateisynchronisation