[MSGINA]
authorEric Kohl <eric.kohl@reactos.org>
Fri, 31 Jan 2014 19:26:00 +0000 (19:26 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Fri, 31 Jan 2014 19:26:00 +0000 (19:26 +0000)
Revert r61888. CORE-7824.

svn path=/trunk/; revision=61895

reactos/dll/win32/msgina/gui.c
reactos/dll/win32/msgina/msgina.c
reactos/dll/win32/msgina/msgina.h

index 6357d40..06c5894 100644 (file)
@@ -259,6 +259,9 @@ DoChangePassword(
     ULONG RequestBufferSize;
     ULONG ResponseBufferSize = 0;
     LPWSTR Ptr;
+    LSA_STRING PackageName;
+    HANDLE LsaHandle = NULL;
+    ULONG AuthenticationPackage = 0;
     BOOL res = FALSE;
     NTSTATUS ProtocolStatus;
     NTSTATUS Status;
@@ -345,9 +348,30 @@ DoChangePassword(
                   NewPassword1,
                   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 */
-    Status = LsaCallAuthenticationPackage(pgContext->LsaHandle,
-                                          pgContext->AuthenticationPackage,
+    Status = LsaCallAuthenticationPackage(LsaHandle,
+                                          AuthenticationPackage,
                                           RequestBuffer,
                                           RequestBufferSize,
                                           (PVOID*)&ResponseBuffer,
@@ -380,6 +404,9 @@ done:
     if (ResponseBuffer != NULL)
         LsaFreeReturnBuffer(ResponseBuffer);
 
+    if (LsaHandle != NULL)
+        NtClose(LsaHandle);
+
     return res;
 }
 
index 946fcc8..2c7c1c1 100644 (file)
@@ -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
  */
@@ -323,13 +283,6 @@ WlxInitialize(
         return FALSE;
     }
 
-    if (!ConnectToLsa(pgContext))
-    {
-        WARN("ConnectToLsa() failed\n");
-        LocalFree(pgContext);
-        return FALSE;
-    }
-
     /* Return the context to winlogon */
     *pWlxContext = (PVOID)pgContext;
     pgContext->hDllInstance = hDllInstance;
index 1eec5ec..48d3f36 100644 (file)
@@ -38,8 +38,6 @@ typedef struct
     PWLX_DISPATCH_VERSION_1_3 pWlxFuncs;
     HANDLE hDllInstance;
     HWND hStatusWindow;
-    HANDLE LsaHandle;
-    ULONG AuthenticationPackage;
     DWORD AutoLogonState;
     BOOL bDisableCAD;
     BOOL bAutoAdminLogon;