共用方式為


spAcceptLsaModeContextFn 回呼函式 (ntsecpkg.h)

伺服器分派函式,用來建立伺服器和用戶端共用 的安全性內容

當伺服器呼叫 Security Support Provider InterfaceAcceptSecurityContext (General) 函式時,會呼叫 SpAcceptLsaModeContext 函式。

語法

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
)
{...}

參數

[in] CredentialHandle

選擇性。 要用於內容的認證句柄。

[in] ContextHandle

選擇性。 目前內容的句柄。

[in] InputBuffer

SecBufferDesc 結構的指標,其中包含來自客戶端的資訊。

[in] ContextRequirements

指出內容需求的旗標。 下表列出有效的值。

意義
ASC_REQ_DELEGATE
允許伺服器模擬用戶端。
ASC_REQ_MUTUAL_AUTH
用戶端和伺服器都需要證明其身分識別。
ASC_REQ_REPLAY_DETECT
安全性內容將支持偵測重新執行的封包。
ASC_REQ_SEQUENCE_DETECT
安全性內容將支援偵測順序錯誤訊息。
ASC_REQ_USE_SESSION_KEY
必須交涉新的 會話金鑰
ASC_REQ_PROMPT_FOR_CREDS
如果用戶端是互動式使用者,封裝必須盡可能提示使用者輸入適當的認證。
ASC_REQ_USE_SUPPLIED_CREDS
輸入緩衝區包含封裝特定的認證資訊,應該用來驗證連線。
ASC_REQ_ALLOCATE_MEMORY
封裝必須配置記憶體。 呼叫端最終必須呼叫 FreeContextBuffer函 式,以釋放安全性套件所配置的記憶體。
ASC_REQ_USE_DCE_STYLE
呼叫端需要三次相互驗證交易。
ASC_REQ_DATAGRAM
應該使用數據報類型通道。 如需詳細資訊,請參閱 數據報內容
ASC_REQ_CONNECTION
應該使用連線類型通道。 如需詳細資訊,請參閱 連接導向內容
ASC_REQ_EXTENDED_ERROR
如果內容失敗,請產生錯誤回復訊息以傳送回用戶端。
ASC_REQ_STREAM
應該使用串流類型通道。 如需詳細資訊,請參閱 Stream 內容
ASC_REQ_INTEGRITY
可以驗證緩衝區完整性;不過,不會偵測到重新執行和序列外訊息。

[in] TargetDataRep

旗標,指出要使用的數據表示法,例如位元組排序。 包含SECURITY_NATIVE_DREP或SECURITY_NETWORK_DREP。

[out] NewContextHandle

LSA_SEC_HANDLE的指標。 在第一次呼叫 AcceptSecurityContext 時,此指標會收到新的內容句柄。 在後續呼叫時, NewContextHandle 可以與 ContextHandle 參數中指定的句柄相同。

[out] OutputBuffer

SecBufferDesc 結構的指標,接收要傳送至客戶端的資訊。

[out] ContextAttributes

旗標的指標,指定伺服器支援的內容屬性。 如需有效值的清單,請參閱 ContextRequirements 參數。

[out] ExpirationTime

TimeStamp 的指標,該時間會接收內容的到期時間。

[out] MappedContext

布爾值的指標。 如果安全性套件實作使用者模式 SSP/AP 函式,請將 MappedContext 設定為 TRUE

[out] ContextData

選擇性。 SecBuffer 結構的指標,可接收建立使用者模式安全性內容時要複製的內容特定數據。 ContextData 的記憶體必須使用 AllocateLsaHeap 函式來配置。 本機安全性授權單位 (LSA) 將會釋放記憶體。

傳回值

如果 SpAcceptLsaModeContext 函式成功,而且不需要再進行處理才能建立安全性內容,請傳回STATUS_SUCCESS。 如果需要其他處理,函式應該會傳回SEC_I_CONTINUE_NEEDED。

如果函式因任何其他原因而無法建立安全性內容,請傳回NTSTATUS程式代碼,指出原因。

備註

SpInitLsaModeContext 是用來建立安全性內容的用戶端函式。

SSP/AP 必須實作 SpAcceptLsaModeContext 函式。 提供給實作的實際名稱是由開發人員決定。

SpAcceptLsaModeContext 函式的指標可在從SpLsaModeInitialize函式收到的SECPKG_FUNCTION_TABLE結構中使用。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 ntsecpkg.h

另請參閱

AllocateLsaHeap

SpInitLsaModeContext

SpLsaModeInitialize