diff --git a/src/auth/AuthDbg.cpp b/src/auth/AuthDbg.cpp index 3b27994add..2a7a40dd12 100644 --- a/src/auth/AuthDbg.cpp +++ b/src/auth/AuthDbg.cpp @@ -145,6 +145,12 @@ int DebugClient::authenticate(Firebird::CheckStatusWrapper* status, Firebird::IC { try { + if (cb->getLogin()) + { + // user specified login - we should not continue with trusted-like auth + return AUTH_CONTINUE; + } + if (str != "HAND") { str = "HAND"; diff --git a/src/auth/trusted/AuthSspi.cpp b/src/auth/trusted/AuthSspi.cpp index a87702ad88..13f1994789 100644 --- a/src/auth/trusted/AuthSspi.cpp +++ b/src/auth/trusted/AuthSspi.cpp @@ -480,6 +480,12 @@ int WinSspiClient::authenticate(Firebird::CheckStatusWrapper* status, { try { + if (cBlock->getLogin()) + { + // user specified login - we should not continue with trusted-like auth + return AUTH_CONTINUE; + } + sspiData.clear(); unsigned int length; const unsigned char* bytes = cBlock->getData(&length);