mirror of
https://github.com/reactos/reactos.git
synced 2025-07-29 13:42:33 +00:00
[MSGINA]
Revert r61888. CORE-7824. svn path=/trunk/; revision=61895
This commit is contained in:
parent
26ed6933ab
commit
c10bfd3da9
3 changed files with 29 additions and 51 deletions
|
@ -259,6 +259,9 @@ DoChangePassword(
|
||||||
ULONG RequestBufferSize;
|
ULONG RequestBufferSize;
|
||||||
ULONG ResponseBufferSize = 0;
|
ULONG ResponseBufferSize = 0;
|
||||||
LPWSTR Ptr;
|
LPWSTR Ptr;
|
||||||
|
LSA_STRING PackageName;
|
||||||
|
HANDLE LsaHandle = NULL;
|
||||||
|
ULONG AuthenticationPackage = 0;
|
||||||
BOOL res = FALSE;
|
BOOL res = FALSE;
|
||||||
NTSTATUS ProtocolStatus;
|
NTSTATUS ProtocolStatus;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
@ -345,9 +348,30 @@ DoChangePassword(
|
||||||
NewPassword1,
|
NewPassword1,
|
||||||
RequestBuffer->NewPassword.MaximumLength);
|
RequestBuffer->NewPassword.MaximumLength);
|
||||||
|
|
||||||
|
/* Connect to the LSA server */
|
||||||
|
Status = LsaConnectUntrusted(&LsaHandle);
|
||||||
|
if (!NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
ERR("LsaConnectUntrusted failed (Status 0x%08lx)\n", Status);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get the authentication package */
|
||||||
|
RtlInitAnsiString((PANSI_STRING)&PackageName,
|
||||||
|
MSV1_0_PACKAGE_NAME);
|
||||||
|
|
||||||
|
Status = LsaLookupAuthenticationPackage(LsaHandle,
|
||||||
|
&PackageName,
|
||||||
|
&AuthenticationPackage);
|
||||||
|
if (!NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
ERR("LsaLookupAuthenticationPackage failed (Status 0x%08lx)\n", Status);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
/* Call the authentication package */
|
/* Call the authentication package */
|
||||||
Status = LsaCallAuthenticationPackage(pgContext->LsaHandle,
|
Status = LsaCallAuthenticationPackage(LsaHandle,
|
||||||
pgContext->AuthenticationPackage,
|
AuthenticationPackage,
|
||||||
RequestBuffer,
|
RequestBuffer,
|
||||||
RequestBufferSize,
|
RequestBufferSize,
|
||||||
(PVOID*)&ResponseBuffer,
|
(PVOID*)&ResponseBuffer,
|
||||||
|
@ -380,6 +404,9 @@ done:
|
||||||
if (ResponseBuffer != NULL)
|
if (ResponseBuffer != NULL)
|
||||||
LsaFreeReturnBuffer(ResponseBuffer);
|
LsaFreeReturnBuffer(ResponseBuffer);
|
||||||
|
|
||||||
|
if (LsaHandle != NULL)
|
||||||
|
NtClose(LsaHandle);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -254,46 +254,6 @@ GetRegistrySettings(PGINA_CONTEXT pgContext)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static
|
|
||||||
BOOL
|
|
||||||
ConnectToLsa(
|
|
||||||
PGINA_CONTEXT pgContext)
|
|
||||||
{
|
|
||||||
LSA_STRING LogonProcessName;
|
|
||||||
LSA_STRING PackageName;
|
|
||||||
LSA_OPERATIONAL_MODE SecurityMode = 0;
|
|
||||||
NTSTATUS Status;
|
|
||||||
|
|
||||||
/* Connect to the LSA server */
|
|
||||||
RtlInitAnsiString((PANSI_STRING)&LogonProcessName,
|
|
||||||
"MSGINA");
|
|
||||||
|
|
||||||
Status = LsaRegisterLogonProcess(&LogonProcessName,
|
|
||||||
&pgContext->LsaHandle,
|
|
||||||
&SecurityMode);
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
ERR("LsaRegisterLogonProcess failed (Status 0x%08lx)\n", Status);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Get the authentication package */
|
|
||||||
RtlInitAnsiString((PANSI_STRING)&PackageName,
|
|
||||||
MSV1_0_PACKAGE_NAME);
|
|
||||||
|
|
||||||
Status = LsaLookupAuthenticationPackage(pgContext->LsaHandle,
|
|
||||||
&PackageName,
|
|
||||||
&pgContext->AuthenticationPackage);
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
ERR("LsaLookupAuthenticationPackage failed (Status 0x%08lx)\n", Status);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
@ -323,13 +283,6 @@ WlxInitialize(
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ConnectToLsa(pgContext))
|
|
||||||
{
|
|
||||||
WARN("ConnectToLsa() failed\n");
|
|
||||||
LocalFree(pgContext);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return the context to winlogon */
|
/* Return the context to winlogon */
|
||||||
*pWlxContext = (PVOID)pgContext;
|
*pWlxContext = (PVOID)pgContext;
|
||||||
pgContext->hDllInstance = hDllInstance;
|
pgContext->hDllInstance = hDllInstance;
|
||||||
|
|
|
@ -38,8 +38,6 @@ typedef struct
|
||||||
PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
|
PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
|
||||||
HANDLE hDllInstance;
|
HANDLE hDllInstance;
|
||||||
HWND hStatusWindow;
|
HWND hStatusWindow;
|
||||||
HANDLE LsaHandle;
|
|
||||||
ULONG AuthenticationPackage;
|
|
||||||
DWORD AutoLogonState;
|
DWORD AutoLogonState;
|
||||||
BOOL bDisableCAD;
|
BOOL bDisableCAD;
|
||||||
BOOL bAutoAdminLogon;
|
BOOL bAutoAdminLogon;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue