SpAcceptLsaModeContextFn-Rückruffunktion (ntsecpkg.h)
Serververteilungsfunktion zum Erstellen eines Sicherheitskontexts , der von einem Server und Client gemeinsam genutzt wird.
Die SpAcceptLsaModeContext-Funktion wird aufgerufen, wenn der Server die AcceptSecurityContext-Funktion (Allgemein) der Schnittstelle des Sicherheitssupportanbieters aufruft.
Syntax
SpAcceptLsaModeContextFn Spacceptlsamodecontextfn;
NTSTATUS Spacceptlsamodecontextfn(
[in] LSA_SEC_HANDLE CredentialHandle,
[in] LSA_SEC_HANDLE ContextHandle,
[in] PSecBufferDesc InputBuffer,
[in] ULONG ContextRequirements,
[in] ULONG TargetDataRep,
[out] PLSA_SEC_HANDLE NewContextHandle,
[out] PSecBufferDesc OutputBuffer,
[out] PULONG ContextAttributes,
[out] PTimeStamp ExpirationTime,
[out] PBOOLEAN MappedContext,
[out] PSecBuffer ContextData
)
{...}
Parameter
[in] CredentialHandle
Optional. Behandeln Sie die Anmeldeinformationen, die für den Kontext verwendet werden sollen.
[in] ContextHandle
Optional. Handle mit dem aktuellen Kontext.
[in] InputBuffer
Zeiger auf eine SecBufferDesc-Struktur , die Informationen vom Client enthält.
[in] ContextRequirements
Flags, die die Kontextanforderungen angeben. In der folgenden Tabelle sind die gültigen Werte aufgeführt.
Wert | Bedeutung |
---|---|
|
Der Server darf die Identität des Clients annehmen. |
|
Sowohl der Client als auch der Server müssen ihre Identität nachweisen. |
|
Der Sicherheitskontext unterstützt die Erkennung von wiedergegebenen Paketen. |
|
Der Sicherheitskontext unterstützt die Erkennung von ungeordneten Nachrichten. |
|
Ein neuer Sitzungsschlüssel muss ausgehandelt werden. |
|
Wenn der Client ein interaktiver Benutzer ist, muss das Paket den Benutzer nach Möglichkeit zur Eingabe der entsprechenden Anmeldeinformationen auffordern. |
|
Der Eingabepuffer enthält paketspezifische Anmeldeinformationen, die zum Authentifizieren der Verbindung verwendet werden sollen. |
|
Das Paket muss Arbeitsspeicher zuweisen. Der Aufrufer muss schließlich die FreeContextBuffer-Funktion aufrufen, um den vom Sicherheitspaket zugewiesenen Arbeitsspeicher freizugeben. |
|
Der Aufrufer erwartet eine Transaktion zur gegenseitigen Authentifizierung mit drei Beinen. |
|
Es sollte ein Kommunikationskanal vom Typ Datagram verwendet werden. Weitere Informationen finden Sie unter Datagrammkontexte. |
|
Es sollte ein Verbindungstypkommunikationskanal verwendet werden. Weitere Informationen finden Sie unter Verbindungsorientierte Kontexte. |
|
Wenn der Kontext fehlschlägt, generieren Sie eine Fehlermeldung, die an den Client zurück gesendet wird. |
|
Es sollte ein Streamtypkommunikationskanal verwendet werden. Weitere Informationen finden Sie unter Stream Kontexte. |
|
Pufferintegrität kann überprüft werden; Es werden jedoch keine wiedergegebenen und nicht wiedergegebenen Nachrichten erkannt. |
[in] TargetDataRep
Flag, das die zu verwendende Datendarstellung angibt, z. B. bytereihenfolge. Enthält SECURITY_NATIVE_DREP oder SECURITY_NETWORK_DREP.
[out] NewContextHandle
Zeiger auf eine LSA_SEC_HANDLE. Beim ersten Aufruf von AcceptSecurityContext empfängt dieser Zeiger das neue Kontexthandle. Bei nachfolgenden Aufrufen kann NewContextHandle mit dem im ContextHandle-Parameter angegebenen Handle identisch sein.
[out] OutputBuffer
Zeiger auf eine SecBufferDesc-Struktur , die Informationen empfängt, die an den Client gesendet werden sollen.
[out] ContextAttributes
Zeiger auf Flags, die die vom Server unterstützten Kontextattribute angeben. Eine Liste der gültigen Werte finden Sie im Parameter ContextRequirements .
[out] ExpirationTime
Zeiger auf einen TimeStamp , der die Ablaufzeit für den Kontext empfängt.
[out] MappedContext
Zeiger auf einen booleschen Wert. Legen Sie MappedContext auf TRUE fest, wenn das Sicherheitspaket die SSP/AP-Funktionen im Benutzermodus implementiert.
[out] ContextData
Optional. Zeiger auf eine SecBuffer-Struktur , die kontextspezifische Daten empfängt, die beim Erstellen des Benutzermodussicherheitskontexts kopiert werden sollen. Arbeitsspeicher für ContextData muss mithilfe der Funktion AllocateLsaHeap zugewiesen werden. Die lokale Sicherheitsbehörde (Local Security Authority , LSA) gibt den Arbeitsspeicher frei.
Rückgabewert
Wenn die SpAcceptLsaModeContext-Funktion erfolgreich ist und zum Einrichten des Sicherheitskontexts keine weitere Verarbeitung erforderlich ist, geben Sie STATUS_SUCCESS zurück. Wenn zusätzliche Verarbeitung erforderlich ist, sollte die Funktion SEC_I_CONTINUE_NEEDED zurückgeben.
Wenn die Funktion den Sicherheitskontext aus einem anderen Grund nicht erstellen kann, geben Sie einen NTSTATUS-Code zurück, der den Grund angibt.
Hinweise
SpInitLsaModeContext ist die clientseitige Funktion zum Erstellen eines Sicherheitskontexts.
SSP/APs müssen die SpAcceptLsaModeContext-Funktion implementieren. Der tatsächliche Name, der der Implementierung zugewiesen wird, liegt beim Entwickler.
Ein Zeiger auf die SpAcceptLsaModeContext-Funktion ist in der SECPKG_FUNCTION_TABLE Struktur verfügbar, die von der SpLsaModeInitialize-Funktion empfangen wird.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | ntsecpkg.h |