Im Folgenden finden Sie eine Beschreibung der Ereignisabfolge während der Authentifizierung.
Eine entfernte Anwendung startet eine Synchronisationsanforderung mit einer entfernten ID, einem MobiLink-Benutzernamen und wahlweise mit einem Kennwort und einem neuen Kennwort. Der MobiLink-Server beginnt eine neue Transaktion und löst das Ereignis begin_connection_autocommit und begin_connection aus.
MobiLink stellt sicher, dass die entfernte ID derzeit nicht bereits eine Synchronisation gestartet hat und setzt authentication_status auf 4000.
Wenn Sie ein authenticate_user-Skript definiert haben, tritt Folgendes ein:
Wenn das authenticate_user-Skript in SQL geschrieben wurde, wird das Skript mit dem voreingestellten authentication_status-Parameter 4000, dem angegebenen MobiLink-Benutzernamen und optional mit dem Kennwort und dem neuen Kennwort aufgerufen.
Wenn das authenticate_user-Skript in Java oder .NET geschrieben wurde und eine SQL-Anweisung zurückgibt, wird diese SQL-Anweisung mit dem voreingestellten authentication_status-Parameter 4000, dem angegebenen MobiLink-Benutzernamen und optional mit dem Kennwort und dem neuen Kennwort aufgerufen.
Falls das authenticate_user-Skript einen Ausnahmefehler auslöst oder bei der Ausführung des Skripts ein Fehler auftritt, stoppt der Synchronisationsprozess.
Das authenticate_user-Skript oder die zurückgegebene SQL-Anweisung müssen ein Aufruf einer gespeicherten Prozedur sein, die 2 bis 4 Argumente hat. Der voreingestellte Wert für authentication_status wird als erster Parameter übergeben und kann von der gespeicherten Prozedur aktualisiert werden. Der Rückgabewert des ersten Parameters ist der Wert von authentication_status aus dem Skript authenticate_user.
Wenn ein authenticate_user_hashed-Skript vorhanden ist, tritt Folgendes ein:
Falls ein Kennwort angegeben wurde, wird ein Hash-Wert dafür berechnet. Bei der Angabe eines neuen Kennworts, wird ein Hash-Wert dafür berechnet.
Das Skript authenticate_user_hashed wird mit dem aktuellen Wert von authentication_status (voreingestellter Wert von authentication_status, wenn das Skript authenticate_user nicht existiert, oder der Wert von authentication_status, den das Skript authenticate_user zurückgegeben hat) und den Hash-Kennwörtern aufgerufen. Das Verhalten entspricht Schritt 3. Der Rückgabewert des ersten Parameters wird als Wert von authentication_status des Skripts authenticate_user_hashed verwendet.
Der MobiLink-Server nimmt den größeren Wert des auth_user-Status aus den Skripten authenticate_user und authenticate_user_hashed, sofern vorhanden, oder den voreingestellen Status von Wert von authentication_status, wenn keines der Skripten existiert.
Der MobiLink-Server fragt den von Ihnen angegebenen MobiLink-Benutzernamen in der Tabelle ml_user ab.
Wenn eines der angepassten Skripten authenticate_user oder authenticate_user_hashed aufgerufen wurde, aber der von Ihnen angegebene MobiLink-Benutzername nicht in der Tabelle ml_user vorhanden und authentication_status gültig ist (1000 oder 2000), wird der MobiLink-Benutzername zur MobiLink-Systemtabelle ml_user hinzugefügt. Falls authentication_status nicht gültig ist, wird ml_user nicht aktualisiert und es kommt zu einem Fehler.
Wenn die angepassten Skripten nicht aufgerufen wurden und der von Ihnen bereitgestellte MobiLink-Benutzername nicht in der Tabelle ml_user enthalten ist, wird der MobiLink-Benutzername zu ml_user hinzugefügt, sofern Sie den MobiLink-Server mit der Option -zu+ gestartet haben. Andernfalls tritt ein Fehler ein und authentication_status wird auf ungültig gesetzt.
Wenn die angepassten Skripten aufgerufen wurden und der von Ihnen bereitgestellte MobiLink-Benutzername in der Tabelle ml_user enthalten ist, geschieht nichts.
Wenn die angepassten Skripten nicht aufgerufen wurden und der von Ihnen angegebene MobiLink-Benutzername in der Tabelle ml_user enthalten ist, werden die Kennwörter mit dem Wert in der Tabelle ml_user verglichen. Wenn das Kennwort dem in der Tabelle ml_user für den MobiLink-Benutzer entspricht, wird authentication_status auf gültig gesetzt. Andernfalls wird authentication_status auf ungültig gesetzt.
Falls authentication_status gültig ist und weder das Skript authenticate_user noch authenticate_user_hashed aufgerufen wurde und Sie ein neues Kennwort in der Tabelle ml_user für diesen MobiLink-Benutzer bereitgestellt haben, wird das Kennwort auf das von Ihnen bereitgestellte Kennwort gesetzt.
Wenn Sie ein authenticate_parameters-Skript definiert haben und authentication_status gültig ist (1000 oder 2000), tritt Folgendes ein:
Die Parameter werden an das Skript authentication_parameters übergeben.
Falls das Skript authenticate_parameters einen authentication_status-Wert zurückgibt, der größer als der aktuelle Wert von authentication_status ist, überschreibt der neue Wert von authentication_status den alten Wert.
Falls authentication_status nicht zulässig ist, wird die Synchronisation abgebrochen.
Falls Sie das modify_user-Skript definiert haben, wird es aufgerufen, um den von Ihnen angegebenen MobiLink-Benutzernamen durch einen neuen, von diesem Skript zurückgegebenen MobiLink-Benutzernamen zu ersetzen.
Der MobiLink-Server führt die Transaktion immer nach der Benutzerauthentifizierung in MobiLink durch, unabhängig vom authentication_status. Wenn authentication_status einen gültigen Wert hat (1000 oder 2000), wird die Synchronisation fortgesetzt. Falls authentication_status nicht zulässig ist, wird die Synchronisation abgebrochen.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |