mirror of
https://github.com/reactos/reactos.git
synced 2024-12-30 19:14:31 +00:00
[MSGINA]
Move the LSA connection code into a separate file. This connection code will later be used by the logon code too. svn path=/trunk/; revision=61919
This commit is contained in:
parent
cfe9329efe
commit
e63eb57839
4 changed files with 66 additions and 25 deletions
|
@ -7,6 +7,7 @@ spec2def(msgina.dll msgina.spec)
|
|||
|
||||
list(APPEND SOURCE
|
||||
gui.c
|
||||
lsa.c
|
||||
msgina.c
|
||||
stubs.c
|
||||
tui.c
|
||||
|
|
|
@ -259,9 +259,6 @@ DoChangePassword(
|
|||
ULONG RequestBufferSize;
|
||||
ULONG ResponseBufferSize = 0;
|
||||
LPWSTR Ptr;
|
||||
LSA_STRING PackageName;
|
||||
HANDLE LsaHandle = NULL;
|
||||
ULONG AuthenticationPackage = 0;
|
||||
BOOL res = FALSE;
|
||||
NTSTATUS ProtocolStatus;
|
||||
NTSTATUS Status;
|
||||
|
@ -349,29 +346,15 @@ DoChangePassword(
|
|||
RequestBuffer->NewPassword.MaximumLength);
|
||||
|
||||
/* Connect to the LSA server */
|
||||
Status = LsaConnectUntrusted(&LsaHandle);
|
||||
if (!NT_SUCCESS(Status))
|
||||
if (!ConnectToLsa(pgContext))
|
||||
{
|
||||
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;
|
||||
ERR("ConnectToLsa() failed\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Call the authentication package */
|
||||
Status = LsaCallAuthenticationPackage(LsaHandle,
|
||||
AuthenticationPackage,
|
||||
Status = LsaCallAuthenticationPackage(pgContext->LsaHandle,
|
||||
pgContext->AuthenticationPackage,
|
||||
RequestBuffer,
|
||||
RequestBufferSize,
|
||||
(PVOID*)&ResponseBuffer,
|
||||
|
@ -404,9 +387,6 @@ done:
|
|||
if (ResponseBuffer != NULL)
|
||||
LsaFreeReturnBuffer(ResponseBuffer);
|
||||
|
||||
if (LsaHandle != NULL)
|
||||
NtClose(LsaHandle);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
52
reactos/dll/win32/msgina/lsa.c
Normal file
52
reactos/dll/win32/msgina/lsa.c
Normal file
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
* PROJECT: ReactOS msgina.dll
|
||||
* FILE: dll/win32/msgina/gui.c
|
||||
* PURPOSE: ReactOS Logon GINA DLL
|
||||
* PROGRAMMER: Eric Kohl
|
||||
*/
|
||||
|
||||
#include "msgina.h"
|
||||
|
||||
BOOL
|
||||
ConnectToLsa(
|
||||
PGINA_CONTEXT pgContext)
|
||||
{
|
||||
LSA_STRING LogonProcessName;
|
||||
LSA_STRING PackageName;
|
||||
LSA_OPERATIONAL_MODE SecurityMode = 0;
|
||||
NTSTATUS Status;
|
||||
|
||||
/* We are already connected to the LSA */
|
||||
if (pgContext->LsaHandle != NULL)
|
||||
return TRUE;
|
||||
|
||||
/* 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;
|
||||
}
|
||||
|
||||
/* EOF */
|
|
@ -38,6 +38,8 @@ typedef struct
|
|||
PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
|
||||
HANDLE hDllInstance;
|
||||
HWND hStatusWindow;
|
||||
HANDLE LsaHandle;
|
||||
ULONG AuthenticationPackage;
|
||||
DWORD AutoLogonState;
|
||||
BOOL bDisableCAD;
|
||||
BOOL bAutoAdminLogon;
|
||||
|
@ -82,6 +84,12 @@ typedef struct _GINA_UI
|
|||
PFGINA_DISPLAYLOCKEDNOTICE DisplayLockedNotice;
|
||||
} GINA_UI, *PGINA_UI;
|
||||
|
||||
/* lsa.c */
|
||||
|
||||
BOOL
|
||||
ConnectToLsa(
|
||||
PGINA_CONTEXT pgContext);
|
||||
|
||||
/* msgina.c */
|
||||
|
||||
BOOL
|
||||
|
|
Loading…
Reference in a new issue