spAcceptLsaModeContextFn 回呼函式 (ntsecpkg.h)
伺服器分派函式,用來建立伺服器和用戶端共用 的安全性內容 。
當伺服器呼叫 Security Support Provider Interface 的 AcceptSecurityContext (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
指出內容需求的旗標。 下表列出有效的值。
值 | 意義 |
---|---|
|
允許伺服器模擬用戶端。 |
|
用戶端和伺服器都需要證明其身分識別。 |
|
安全性內容將支持偵測重新執行的封包。 |
|
安全性內容將支援偵測順序錯誤訊息。 |
|
必須交涉新的 會話金鑰 。 |
|
如果用戶端是互動式使用者,封裝必須盡可能提示使用者輸入適當的認證。 |
|
輸入緩衝區包含封裝特定的認證資訊,應該用來驗證連線。 |
|
封裝必須配置記憶體。 呼叫端最終必須呼叫 FreeContextBuffer函 式,以釋放安全性套件所配置的記憶體。 |
|
呼叫端需要三次相互驗證交易。 |
|
應該使用數據報類型通道。 如需詳細資訊,請參閱 數據報內容。 |
|
應該使用連線類型通道。 如需詳細資訊,請參閱 連接導向內容。 |
|
如果內容失敗,請產生錯誤回復訊息以傳送回用戶端。 |
|
應該使用串流類型通道。 如需詳細資訊,請參閱 Stream 內容。 |
|
可以驗證緩衝區完整性;不過,不會偵測到重新執行和序列外訊息。 |
[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 |