Meldet ein (registriertes) Mitglied in einer Community an.
Sollte es in „CommunitySettings“ Einträge zum Schlüssel „BlockingTimeDueToIncorrectLoginInSeconds“ und „NumberOfIncorrectLoginsToGetBlocked“ geben, wird jeder nicht erfolgreiche Login-Versuch protokolliert (→ „LastIncorrectLogin“ und „IncorrectLogins“) und bei einer Anhäufung fehlgeschlagener Logins innerhalb eines kurzen Zeitraums der Benutzer für eine gewisse Zeit (→ „LockedUntil“) von weiteren Login-Versuchen ausgeschlossen.
Hinweis :
Bisher gab es das feature, daß nach (konfigurierbar) x fehlgeschlagenen Logins das Mitglied für eine bestimmte Zeit (ebenfalls konfigurierbar) gesperrt wurde. Dies funktioniert aber ab Version 5.5.0 nicht mehr, da die bisherige Implementation auf einem fehlerhaften Verhalten von pm_CheckPersonIdentity_Pu beruhte : dort wurde nämlich eine „PersonID“ im Ausgabeparameter auch dann zurückgegeben, wenn diese als einzige noch in Frage kam, aber einige der restlichen Daten eben nicht stimmten, sprich die Identifizierung fehlschlug !
Anmerkung : In nächster Zeit wird aber ein allgemeineres (pro Personen-Typ konfigurierbar) „Sperren“-feature implementiert.
| HTTP-Method | POST |
| HTTP-Auth | Optional |
| Tags | |
| Engine-Kategorie | communities |
| Engine-Typ | Daten-Änderung |
| Letzte Aktualisierung | 6.5.4 (2013-04-29) |
| Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
|---|---|---|---|---|
| CommunityID | ID einer Community | smallint | 3.5.2 | |
| UniqueID | Eindeutige ID eines Besuchers, die dem zu identifizierenden Mitglied aktuell zugeordnet ist. Falls die Identifizierungsdaten zur Person in „SessionManagement“ (zu dieser „UniqueID“) gespeichert sind, darf „PersonIdentificationValues“ auch „NULL“ sein. | varchar(50) | 3.5.2 | |
| PersonIdentificationValues | Liste von Werten, die das Mitglied identifizieren. Diese Werte müssen Eigenschaften zu den Merkmal-IDs sein, die in „PersonTypeSettings“ zur „PersonTypeID“ der „CommunityID“ zum Schlüssel „PersonIdentificationIDs“ hinterlegt sind. | varchar(255) | 3.5.2 | |
| SeparatorInIdentVals | '¶' | Gibt an, durch welche Zeichenkette die Werte in „PersonIdentificationValues“ getrennt sind | varchar(4) | 5.5.0 |
| Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
|---|---|---|---|
| CommunityMemberID | ID des identifizierten Community-Mitglieds. Kann „NULL“ sein, wenn es einen Fehler gab. Genauso kann hier aber auch ein Wert zurückgegeben werden, OBWOHL nicht alle Identifizierungsdaten (z.B. ein „Paßwort“) richtig sind ! | integer | 3.5.2 |
| ErrorCode | „0“, falls der Login-Vorgang erfolgreich war, ansonsten ein entsprechender Fehler-Code (z.B. wenn die Identifizierung fehlgeschlagen ist oder der „sweeper“ nicht gestartet ist) | integer | 3.5.2 |
Die Prozedur hat keine Output-Parameter.
| Code | Beschreibung | Quelle 5) |
|---|---|---|
| -781 | Fehlender oder falscher Eintrag in CommunitySettings | nur indirekt |
| -780 | Fehlender oder falscher Eintrag in CommunityMemberSettings | nur indirekt |
| -774 | Login vorübergehend gesperrt | nur indirekt |
| -773 | Login gesperrt | nur indirekt |
| -772 | User ist nicht angemeldet | nur indirekt |
| -771 | Der Sweeper ist nicht gestartet | nur indirekt |
| -770 | Login zur Zeit nicht möglich | nur indirekt |
| -740 | Person ist nicht Mitglied in dieser Community | nur direkt |
| -660 | Identifikation fehlgeschlagen | nur indirekt |
| -621 | Fehlender oder falscher Eintrag in PersonTypeSettings | nur indirekt |
| -602 | Zur defaultUniqueID („VisitorID = -2“) können keinerlei Daten gespeichert oder verändert werden | nur indirekt |
| -599 | Lizenz ist ungültig oder abgelaufen | nur indirekt |
| -569 | Der Benutzer hat kein Ausführungsrecht für die Prozedur | nur indirekt |
| -567 | Die Prozedur darf z. Zt. nicht ausgeführt werden | nur indirekt |
| -566 | Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werden | nur indirekt |
| -550 | Fehlender oder falscher Eintrag in Settings | nur indirekt |
| -535 | Das Datum liegt nicht in der Vergangenheit | nur indirekt |
| -530 | Der Wert ist nicht konvertierbar | nur indirekt |
| -510 | Der Benutzer ist nicht registriert | nur indirekt |
| -504 | Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochen | nur indirekt |
| -502 | Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen) | nur indirekt |
| -500 | Falsche Parameter | nur indirekt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
| 6.5.4 | 2013-04-29 | Datentyp des Parameters „SeparatorInIdentVals“ wg. UTF-8 Unterstützung auf „varchar[4]“ erweitert |
| 5.5.0 | 2008-01-07 | 1. Neuer Parameter „SeparatorInIdentVals“ 2. Ausgabe via „print“ im Fehler-Fall „-500“ (mit Informationen über die Ursache) 3. Bearbeitung des Quellcodes hinsichtlich neuer Konventionen 4. Automatisches Sperren funktioniert nicht mehr ! |
| 3.5.15 | 2002-03-12 | |
| 3.5.7 | 2001-05-04 | |
| 3.5.4 | 2001-03-11 | |
| 3.5.2 | 2001-01-28 | Erstmalig in dieser Version erstellt |
Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
Unformatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/co_LoginIntoCommunity_Pu?CommunityID=<value>&UniqueID=<value>&PersonIdentificationValues=<value>'
Mit xmllint 6) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/co_LoginIntoCommunity_Pu?CommunityID=<value>&UniqueID=<value>&PersonIdentificationValues=<value>' | xmllint --format -
use dStore_php\WebService; $service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80); $request = new WebService\Requests\Engine\Procedure\Request( new WebService\Requests\AccessData('default'), 'co_LoginIntoCommunity_Pu', array( 'CommunityID' => <value>, 'UniqueID' => '<value>', 'PersonIdentificationValues' => '<value>', // 'SeparatorInIdentVals' => '¶' ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray();
XML zur Ausführung mit der Methode engine/execute, z.B. per
curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?> <ListOfBatches> <Batch No="0"> <Procedure Name="co_LoginIntoCommunity_Pu"> <Parameters> <Parameter Name="CommunityID"><!-- smallint value --></Parameter> <Parameter Name="UniqueID"><!-- varchar value --></Parameter> <Parameter Name="PersonIdentificationValues"><!-- varchar value --></Parameter> <!-- <Parameter Name="SeparatorInIdentVals">'¶'</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>