Click or drag to resize

IOBERONLoyaltySystemServiceLoginUser Method

EXALOGIC
Prihlási používateľa do webovej služby (záleží však na nastavení spôsobu autentifikácie služby). Je potrebné volať na začiatku komunikácie s webovou službou, nakoľko sa generuje tzv. GUID pre ďalšiu komunikáciu (ten musí byť súčasťou hlavičky danej požiadavky).

Namespace: Exa.OBERON.Services
Assembly: Exa.OBERON.Services (in Exa.OBERON.Services.dll) Version: 5.0.33.0 (5.0.33.0)
Syntax
OBERONLoyaltySystemClientWS_ResultValue<string> LoginUser(
	OBERONLoyaltySystemClientWS_LoginDataParameters LoginDataParameters
)

Parameters

LoginDataParameters  OBERONLoyaltySystemClientWS_LoginDataParameters
Prihlasovacie údaje (meno, heslo) a ďalšie doplnkové prihlasovacie údaje.

Return Value

OBERONLoyaltySystemClientWS_ResultValueString
V ResultValue.Data vracia v prípade úspešného prihlásenia tzv. GUID daného používateľa (session používateľa), ktorý je nevyhnutný pre ďalšiu komunikáciu (musí byť súčasťou hlavičky danej požiadavky).
Remarks
Pri prihlásení používateľa nezabezpečenou komunikáciou (HTTP - nezabezpečená, HTTPS -> zabezpečená) môže pri odpočúvaní komunikácie útočník pomerne ľahko zistiť prihlasovacie údaje (hlavne heslo). Čiastočne to rieši systém zasielania hesla len vo forme HASH (OBERON používa SHA-1), avšak pri slabých (krátkych) heslách je veľmi jednoduché pomocou hashovacích tabuliek (databáz) získať aj takého heslo. Z tohoto dôvodu je možné zasielané heslo "obohatiť" o SALT a tým znemožniť využitie hashovacích tabuliek (volaním metódy GetLoginSalt je možné získať SALT - potom sa zasiela silnejší HASH). Heslo môže byť zasielané aj vo formáte ako "čistý text" - to je možné dosiahnuť tak, že server vráti v metóde GetLoginSalt prázdny SALT. Po úspešnom prihlásení sa v ďalších požiadavkách na webovú službu musí v hlavičke dopytu uvádzať daný GUID, podľa ktorého sa overuje daná požiadavka.
Príklad hash-ovania hesla s použitím SALT vo VB.NET
Public Class ServiceClient

    Private Function GetPasswordHashSHA1(ByVal u_Password As String, ByVal u_Salt As String) As String

        On Error Resume Next

        Dim tmp_Password As String

        If u_Salt = String.Empty Then
            '--- Heslo bez SALT
            tmp_Password = u_Password
        Else
            '--- Je zadaný SALT - Heslo "zväčšiť" o SALT - k saltu pripojiť heslo ----
            tmp_Password = u_Salt & u_Password
        End If

        Dim m_SHA1 As New System.Security.Cryptography.SHA1Managed
        Dim m_bInput() As Byte = System.Text.Encoding.Default.GetBytes(tmp_Password)
        Dim m_bOutput() As Byte

        Dim tmp_PasswordHashSHA1_Local As String
        m_bOutput = m_SHA1.ComputeHash(m_bInput)
        tmp_PasswordHashSHA1_Local = System.BitConverter.ToString(m_bOutput)
        tmp_PasswordHashSHA1_Local = tmp_PasswordHashSHA1_Local.Replace("-", "")
        tmp_PasswordHashSHA1_Local = tmp_PasswordHashSHA1_Local.ToLower

        Return tmp_PasswordHashSHA1_Local

    End Function

End Class
See Also