mirror of
https://github.com/reactos/reactos.git
synced 2024-09-28 13:34:53 +00:00
[MSV1_0] LsaApLogonUser: Update the logon time/count and bad password time/count
This commit is contained in:
parent
97382dee46
commit
df053b7d16
|
@ -1339,6 +1339,24 @@ LsaApLogonUser(IN PLSA_CLIENT_REQUEST ClientRequest,
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
/* Update the logon time/count or the bad password time/count */
|
||||||
|
if ((UserHandle != NULL) &&
|
||||||
|
(Status == STATUS_SUCCESS || Status == STATUS_WRONG_PASSWORD))
|
||||||
|
{
|
||||||
|
SAMPR_USER_INFO_BUFFER InternalInfo;
|
||||||
|
|
||||||
|
RtlZeroMemory(&InternalInfo, sizeof(InternalInfo));
|
||||||
|
|
||||||
|
if (Status == STATUS_SUCCESS)
|
||||||
|
InternalInfo.Internal2.Flags = USER_LOGON_SUCCESS;
|
||||||
|
else
|
||||||
|
InternalInfo.Internal2.Flags = USER_LOGON_BAD_PASSWORD;
|
||||||
|
|
||||||
|
SamrSetInformationUser(UserHandle,
|
||||||
|
UserInternal2Information,
|
||||||
|
&InternalInfo);
|
||||||
|
}
|
||||||
|
|
||||||
/* Return the account name */
|
/* Return the account name */
|
||||||
*AccountName = DispatchTable.AllocateLsaHeap(sizeof(UNICODE_STRING));
|
*AccountName = DispatchTable.AllocateLsaHeap(sizeof(UNICODE_STRING));
|
||||||
if (*AccountName != NULL)
|
if (*AccountName != NULL)
|
||||||
|
|
|
@ -94,6 +94,18 @@ typedef struct _SAMPR_LOGON_HOURS
|
||||||
unsigned char *LogonHours;
|
unsigned char *LogonHours;
|
||||||
} SAMPR_LOGON_HOURS, *PSAMPR_LOGON_HOURS;
|
} SAMPR_LOGON_HOURS, *PSAMPR_LOGON_HOURS;
|
||||||
|
|
||||||
|
#define USER_LOGON_BAD_PASSWORD 0x08000000
|
||||||
|
#define USER_LOGON_SUCCESS 0x10000000
|
||||||
|
|
||||||
|
typedef struct _SAMPR_USER_INTERNAL2_INFORMATION
|
||||||
|
{
|
||||||
|
unsigned long Flags;
|
||||||
|
OLD_LARGE_INTEGER LastLogon;
|
||||||
|
OLD_LARGE_INTEGER LastLogoff;
|
||||||
|
unsigned short BadPasswordCount;
|
||||||
|
unsigned short LogonCount;
|
||||||
|
} SAMPR_USER_INTERNAL2_INFORMATION, *PSAMPR_USER_INTERNAL2_INFORMATION;
|
||||||
|
|
||||||
typedef struct _SAMPR_USER_ALL_INFORMATION
|
typedef struct _SAMPR_USER_ALL_INFORMATION
|
||||||
{
|
{
|
||||||
OLD_LARGE_INTEGER LastLogon;
|
OLD_LARGE_INTEGER LastLogon;
|
||||||
|
@ -152,6 +164,9 @@ typedef union _SAMPR_USER_INFO_BUFFER
|
||||||
USER_CONTROL_INFORMATION Control;
|
USER_CONTROL_INFORMATION Control;
|
||||||
USER_EXPIRES_INFORMATION Expires;
|
USER_EXPIRES_INFORMATION Expires;
|
||||||
SAMPR_USER_INTERNAL1_INFORMATION Internal1;
|
SAMPR_USER_INTERNAL1_INFORMATION Internal1;
|
||||||
|
#endif
|
||||||
|
SAMPR_USER_INTERNAL2_INFORMATION Internal2;
|
||||||
|
#if 0
|
||||||
SAMPR_USER_PARAMETERS_INFORMATION Parameters;
|
SAMPR_USER_PARAMETERS_INFORMATION Parameters;
|
||||||
#endif
|
#endif
|
||||||
SAMPR_USER_ALL_INFORMATION All;
|
SAMPR_USER_ALL_INFORMATION All;
|
||||||
|
@ -236,6 +251,11 @@ SamrQueryInformationUser(IN SAMPR_HANDLE UserHandle,
|
||||||
IN USER_INFORMATION_CLASS UserInformationClass,
|
IN USER_INFORMATION_CLASS UserInformationClass,
|
||||||
OUT PSAMPR_USER_INFO_BUFFER *Buffer);
|
OUT PSAMPR_USER_INFO_BUFFER *Buffer);
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
NTAPI
|
||||||
|
SamrSetInformationUser(IN SAMPR_HANDLE UserHandle,
|
||||||
|
IN USER_INFORMATION_CLASS UserInformationClass,
|
||||||
|
IN PSAMPR_USER_INFO_BUFFER Buffer);
|
||||||
|
|
||||||
typedef PVOID LSAPR_HANDLE;
|
typedef PVOID LSAPR_HANDLE;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue