mirror of
https://github.com/reactos/reactos.git
synced 2024-06-01 02:01:57 +00:00
[LSASRV] Notify all authentication packages of a session to be deleted
This commit is contained in:
parent
9eb566e707
commit
6ae7fc2b04
|
@ -541,6 +541,25 @@ LsapLookupAuthenticationPackage(PLSA_API_MSG RequestMsg,
|
|||
}
|
||||
|
||||
|
||||
VOID
|
||||
LsapTerminateLogon(
|
||||
_In_ PLUID LogonId)
|
||||
{
|
||||
PLIST_ENTRY ListEntry;
|
||||
PAUTH_PACKAGE Package;
|
||||
|
||||
ListEntry = PackageListHead.Flink;
|
||||
while (ListEntry != &PackageListHead)
|
||||
{
|
||||
Package = CONTAINING_RECORD(ListEntry, AUTH_PACKAGE, Entry);
|
||||
|
||||
Package->LsaApLogonTerminated(LogonId);
|
||||
|
||||
ListEntry = ListEntry->Flink;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
LsapCallAuthenticationPackage(PLSA_API_MSG RequestMsg,
|
||||
PLSAP_LOGON_CONTEXT LogonContext)
|
||||
|
|
|
@ -126,6 +126,11 @@ NTSTATUS
|
|||
LsapLogonUser(PLSA_API_MSG RequestMsg,
|
||||
PLSAP_LOGON_CONTEXT LogonContext);
|
||||
|
||||
VOID
|
||||
LsapTerminateLogon(
|
||||
_In_ PLUID LogonId);
|
||||
|
||||
|
||||
/* authport.c */
|
||||
NTSTATUS
|
||||
StartAuthenticationPort(VOID);
|
||||
|
|
|
@ -210,7 +210,7 @@ LsapDeleteLogonSession(IN PLUID LogonId)
|
|||
if (Session == NULL)
|
||||
return STATUS_NO_SUCH_LOGON_SESSION;
|
||||
|
||||
TRACE("LsapDeleteLogonSession(<0x%lx,0x%lx>)\n",
|
||||
TRACE("LsapDeleteLogonSession(0x%08lx%08lx)\n",
|
||||
LogonId->HighPart, LogonId->LowPart);
|
||||
|
||||
/* Tell ntoskrnl to delete the logon session */
|
||||
|
@ -218,6 +218,9 @@ LsapDeleteLogonSession(IN PLUID LogonId)
|
|||
if (!NT_SUCCESS(Status))
|
||||
return Status;
|
||||
|
||||
/* Notify the authentication packages */
|
||||
LsapTerminateLogon(LogonId);
|
||||
|
||||
/* Remove the session entry from the list */
|
||||
RemoveEntryList(&Session->Entry);
|
||||
SessionCount--;
|
||||
|
|
Loading…
Reference in a new issue