Freigeben über


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
ASC_REQ_DELEGATE
Der Server darf die Identität des Clients annehmen.
ASC_REQ_MUTUAL_AUTH
Sowohl der Client als auch der Server müssen ihre Identität nachweisen.
ASC_REQ_REPLAY_DETECT
Der Sicherheitskontext unterstützt die Erkennung von wiedergegebenen Paketen.
ASC_REQ_SEQUENCE_DETECT
Der Sicherheitskontext unterstützt die Erkennung von ungeordneten Nachrichten.
ASC_REQ_USE_SESSION_KEY
Ein neuer Sitzungsschlüssel muss ausgehandelt werden.
ASC_REQ_PROMPT_FOR_CREDS
Wenn der Client ein interaktiver Benutzer ist, muss das Paket den Benutzer nach Möglichkeit zur Eingabe der entsprechenden Anmeldeinformationen auffordern.
ASC_REQ_USE_SUPPLIED_CREDS
Der Eingabepuffer enthält paketspezifische Anmeldeinformationen, die zum Authentifizieren der Verbindung verwendet werden sollen.
ASC_REQ_ALLOCATE_MEMORY
Das Paket muss Arbeitsspeicher zuweisen. Der Aufrufer muss schließlich die FreeContextBuffer-Funktion aufrufen, um den vom Sicherheitspaket zugewiesenen Arbeitsspeicher freizugeben.
ASC_REQ_USE_DCE_STYLE
Der Aufrufer erwartet eine Transaktion zur gegenseitigen Authentifizierung mit drei Beinen.
ASC_REQ_DATAGRAM
Es sollte ein Kommunikationskanal vom Typ Datagram verwendet werden. Weitere Informationen finden Sie unter Datagrammkontexte.
ASC_REQ_CONNECTION
Es sollte ein Verbindungstypkommunikationskanal verwendet werden. Weitere Informationen finden Sie unter Verbindungsorientierte Kontexte.
ASC_REQ_EXTENDED_ERROR
Wenn der Kontext fehlschlägt, generieren Sie eine Fehlermeldung, die an den Client zurück gesendet wird.
ASC_REQ_STREAM
Es sollte ein Streamtypkommunikationskanal verwendet werden. Weitere Informationen finden Sie unter Stream Kontexte.
ASC_REQ_INTEGRITY
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

Weitere Informationen

AllocateLsaHeap

SpInitLsaModeContext

SpLsaModeInitialize