142 lines
2.2 KiB
C
142 lines
2.2 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1989 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
aumsp.c
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
This module provides private LSA services available to Microsoft
|
|||
|
authentication packages.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Jim Kelly (JimK) 3-May-1991
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#include "ausrvp.h"
|
|||
|
#include <string.h>
|
|||
|
|
|||
|
|
|||
|
NTSTATUS
|
|||
|
LsapAuImpersonateClient (
|
|||
|
PLSA_CLIENT_REQUEST ClientRequest
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
BOOLEAN
|
|||
|
LsapAuMspInitialize()
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
This function initializes data structures related to the private
|
|||
|
services provided to Microsoft authentication packages.
|
|||
|
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
None.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
TRUE - Initialization completed successfully.
|
|||
|
|
|||
|
FALSE - Initialization failed.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// Initialize the table of private LSA routines provided to Microsoft
|
|||
|
// authentication packages.
|
|||
|
//
|
|||
|
|
|||
|
|
|||
|
LsapPrivateLsaApi.GetOperationalMode = NULL; //FIX, FIX
|
|||
|
LsapPrivateLsaApi.ImpersonateClient = &LsapAuImpersonateClient;
|
|||
|
|
|||
|
return TRUE;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
NTSTATUS
|
|||
|
LsapAuImpersonateClient (
|
|||
|
PLSA_CLIENT_REQUEST ClientRequest
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Called by Microsoft authentication packages to impersonate
|
|||
|
LSA's client
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
ClientRequest - Is a pointer to an opaque data structure
|
|||
|
representing the client's request.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
NTSTATUS
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
//
|
|||
|
// Cast the opaque structure
|
|||
|
//
|
|||
|
|
|||
|
PLSAP_CLIENT_REQUEST IClientRequest = (LSAP_CLIENT_REQUEST *)ClientRequest;
|
|||
|
|
|||
|
return NtImpersonateClientOfPort( IClientRequest->LogonProcessContext->CommPort,
|
|||
|
&IClientRequest->Request->PortMessage
|
|||
|
);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
NTSTATUS
|
|||
|
LsapAuGetOperationalMode(
|
|||
|
OUT PLSA_OPERATIONAL_MODE OperationalMode
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
This function returns the operational mode of the system.
|
|||
|
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
None.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
STATUS_SUCCESS - The service has completed successfully.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
|
|||
|
//FIX, FIX - get THIS from configuration control database when available.
|
|||
|
|
|||
|
(*OperationalMode) = (LSA_MODE_PASSWORD_PROTECTED |
|
|||
|
LSA_MODE_INDIVIDUAL_ACCOUNTS);
|
|||
|
|
|||
|
return STATUS_SUCCESS;
|
|||
|
|
|||
|
}
|
|||
|
|