mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 04:13:31 +00:00
[LSASRV] Notify all authentication packages of a session to be deleted
This commit is contained in:
@@ -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--;
|
||||
|
||||
Reference in New Issue
Block a user