Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » MobiLink - Serveradministration » MobiLink-Ereignisse » Synchronisationsereignisse

 

authenticate_parameters (Verbindungsereignis)

Empfängt Werte von der entfernten Datenbank, die für eine Authentifizierung über Benutzer-ID bzw. Kennwort hinaus verwendet werden können. Mit den Werten können Sie ebenfalls jede Synchronisation beliebig anpassen.

Parameter

In der folgenden Tabelle stellt die Beschreibung den SQL-Datentyp bereit. Wenn Sie Ihr Skript in Java oder .NET schreiben, müssen Sie den entsprechenden Datentyp benutzen. Weitere Hinweise finden Sie unter SQL-Java-Datentypen und SQL-.NET-Datentypen.

In SQL-Skripten können Sie Ereignisparameter mit ihrem Namen oder mit einem Fragezeichen angeben. Namen und Fragezeichen dürfen jedoch in einem Skript nicht gemischt verwendet werden. Wenn Sie Fragezeichen verwenden, müssen die Parameter in der nachfolgend gezeigten Reihenfolge stehen und sind nur dann optional, wenn keine nachfolgenden Parameter angegeben wurden (z.B. müssen Sie Parameter 1 verwenden, wenn Sie Parameter 2 verwenden möchten). Wenn Sie benannte Parameter verwenden, können Sie beliebige Teilmengen der Parameter in beliebiger Reihenfolge angeben.

Parametername für SQL-Skripten Beschreibung Reihenfolge
s.authentication_status INTEGER. Dies ist ein INOUT-Parameter. 1
s.remote_id VARCHAR(128). Die entfernte ID von MobiLink. Sie können die entfernte ID nur dann referenzieren, wenn Sie benannte Parameter verwenden. Nicht anwendbar
s.username VARCHAR(128). Der MobiLink-Benutzername 2
a.N (mindestens einer) VARCHAR(128). Benannte Parameter können z.B. a.1 a.2 sein. 3...
Parameterbeschreibung
  • authentication_status   Der Parameter authentication_status ist erforderlich. Zeigt den gesamten Erfolg der Authentifizierung an und kann einen der folgenden Werte annehmen:

    Zurückgegebener Wert authentication_status Beschreibung
    V <= 1999 1000 Authentifizierung erfolgreich
    1999 < V <= 2999 2000 Authentifizierung erfolgreich, aber das Kennwort läuft in Kürze ab.
    2999 < V <= 3999 3000 Authentifizierung fehlgeschlagen, da das Kennwort abgelaufen ist.
    3999 < V <= 4999 4000 Authentifizierung fehlgeschlagen
    4999 < V <= 5999 5000 Authentifizierung fehlgeschlagen, da der Benutzer bereits synchronisiert.
    5999 < V 4000 Wenn der zurückgegebene Wert größer als 5999 ist, interpretiert ihn MobiLink als einen Rückgabewert von 4000 (Authentifizierung fehlgeschlagen).

  • username   Dieser Parameter ist der MobiLink-Benutzername. VARCHAR(128).

  • remote_ID   Die entfernte ID von MobiLink. Sie können die entfernte ID nur dann referenzieren, wenn Sie benannte Parameter verwenden.

    Weitere Hinweise finden Sie unter Entfernte IDs und MobiLink-Benutzernamen in Skripten verwenden.

  • remote_parameters   Die Anzahl der entfernten Parameter muss der erwarteten Anzahl entsprechen, da sonst ein Fehler gemeldet wird. Ein Fehler tritt auch auf, wenn vom Client Parameter gesendet werden und kein Skript für dieses Ereignis vorliegt.

Bemerkungen

Sie können Zeichenfolgen (oder Parameter in der Form von Zeichenfolgen) sowohl von SQL Anywhere- als auch von UltraLite-Clients senden. Dadurch kann die Authentifizierung über eine Benutzer-ID und ein Kennwort hinausgehen. Außerdem bedeutet dies, dass Sie während der Authentifizierung Ihre Synchronisation basierend auf dem Wert von Parametern anpassen und dies vor der Synchronisation tun können.

Der MobiLink-Server führt dieses Ereignis beim Start jeder einzelnen Synchronisation aus. Es wird in derselben Transaktion ausgeführt wie das authenticate_user-Ereignis.

Sie können dieses Ereignis verwenden, um das integrierte MobiLink-Authentifizierungsverfahren durch ein angepasstes Verfahren zu ersetzen. Als Grund dafür ist denkbar, dass Sie möglicherweise das Authentifizierungsverfahren Ihres DBMS verwenden oder Funktionen implementieren wollen, die im integrierten MobiLink-Verfahren nicht vorhanden sind.

Wenn die Skripten authenticate_user oder authenticate_user_hashed aufgerufen werden und einen Fehler zurückgeben, wird dieses Ereignis nicht aufgerufen.

SQL-Skripten für das Ereignis authenticate_parameters müssen als gespeicherte Prozedur implementiert werden.

Siehe auch
Beispiele

Für entfernte UltraLite-Datenbanken werden die Parameter mit den Feldern num_auth_parms und auth_parms in der Struktur ul_synch_info übergeben. num_auth_parms ist die Anzahl der Parameter von 0 bis 255. auth_parms ist ein Zeiger auf ein Array mit Zeichenfolgen. Damit die Zeichenfolgen nicht als normaler Text angezeigt werden können, werden sie sie auf dieselbe Weise versendet wie Kennwörter. Wenn num_auth_parms gleich 0 ist, setzen Sie auth_parms auf NULL. Nachstehend finden Sie ein Beispiel für die Übergabe von Parametern in UltraLite:

ul_char * Params[ 3 ] = { UL_TEXT( "param1" ), 
   UL_TEXT( "param2" ), UL_TEXT( "param3" ) };

...
info.num_auth_parms = 3;
info.auth_parms = Params;

Bei entfernten SQL Anywhere-Datenbanken können Sie Parameter mit der dbmlsync-Option -ap in eine kommagetrennten Liste übergeben. Die folgende Befehlszeile übergibt z.B drei Parameter:

dbmlsync -ap "param1,param2,param3"

In diesem Beispiel könnte das authenticate_parameters-Skript wie folgt aussehen:

CALL my_auth_parm ( 
  {ml s.authentication_status},
  {ml s.remote_id},
  {ml s.username},
  {ml a.1},
  {ml a.2},
  {ml a.3} 
)