驗證函式

驗證函式會根據使用方式進行分類,如下所示:

SSPI 函式

安全性支援提供者介面 (SSPI) 函式屬於下列主要類別。

封裝管理

SSPI 套件管理功能會起始 安全性套件、列舉可用的套件,以及查詢安全性套件的屬性。 下列 SSPI 函式提供安全性套件的管理服務。

函式 描述
EnumerateSecurityPackages 列出可用的安全性套件及其功能。
InitSecurityInterface 擷取安全性支援提供者 (SSP) 分派資料表的指標。
QuerySecurityPackageInfo 擷取指定 之安全性套件的相關資訊。 這項資訊包含驗證資訊、 認證和內容的大小界限。

認證管理

SSPI 認證管理功能提供 認證 控制碼,這是存取主體之不透明安全性物件的參考。 安全性物件不透明,因為應用程式只能存取控制碼,而不是結構的實際內容。

認證內容之內容的所有參考都是透過物件的控制碼,而 安全性套件 會取值控制碼以存取認證的詳細資料。 認證控制碼是 {0x00000000, 0x00000000} 與 {0xFFFFFFFF, 0xFFFFFFFE} 之間的 64 位值。

應用程式會使用認證控制碼搭配 內容管理功能 來建立 安全性內容

認證管理功能也會釋放認證控制碼,並查詢認證的屬性。 目前,與認證相關聯的名稱是唯一可以查詢的屬性。

下列函式會與認證管理搭配使用。

函式 描述
AcquireCredentialsHandle (General) 取得指定主體既有認證的控制碼。
ExportSecurityCoNtext 將安全性內容匯出至內容緩衝區。
FreeCredentialsHandle 釋放認證控制碼和相關聯的資源。
ImportSecurityCoNtext 使用 ExportSecurityCoNtext 將匯出的安全性內容匯入目前進程。
QueryCredentialsAttributes 擷取認證的屬性,例如與認證相關聯的名稱。

內容管理

SSPI 內容管理功能會建立和使用 安全性內容

在通訊連結中,用戶端和伺服器會合作以建立共用的安全性內容。 用戶端和伺服器都使用安全性內容搭配 訊息支援 函式,以確保連線期間的訊息 完整性隱私權

安全性內容是不透明的安全性物件。 安全性內容中的資訊不適用於應用程式。 內容管理功能會建立和使用內容控制碼,而安全性套件會取值內容控制碼來存取其安全性內容。

內容控制碼是 {0x00000000、 0x00000000} 與 {0xFFFFFFFF, 0xFFFFFFFE} 之間的 64 位值。

下列函式會與內容管理搭配使用。

函式 描述
AcceptSecurityCoNtext (一般) 由伺服器用來根據從用戶端收到的不透明訊息建立 安全性內容
ApplyControlToken 將補充安全性訊息套用至現有的安全性內容。
CompleteAuthToken 完成驗證權杖。 傳輸應用程式更新一些訊息參數之後,需要修改安全性資訊的通訊協定,例如 DCE 使用此函式。
DeleteSecurityCoNtext 釋放安全性內容和相關聯的資源。
FreeCoNtextBuffer 釋放安全性套件所配置的記憶體緩衝區。
ImpersonateSecurityCoNtext 模擬要顯示為系統用戶端的安全性內容。
InitializeSecurityCoNtext (一般) 用戶端用來起始安全性內容,方法是產生要傳遞至伺服器的不透明訊息。
QueryCoNtextAttributes (General) 讓傳輸應用程式能夠查詢安全性內容特定屬性的安全性套件
QuerySecurityCoNtextToken 取得用戶端安全性內容的存取權杖,並直接使用它。
SetCoNtextAttributes 可讓傳輸應用程式設定安全性封裝的安全性內容屬性。 只有安全通道安全性套件才支援此函式。
RevertSecurityCoNtext 允許 安全性套件 停止呼叫端的模擬,並還原它自己的 安全性內容

訊息支援

SSPI 訊息支援函式可讓應用程式傳輸和接收防竄改訊息,以及加密和解密訊息。 這些函式會使用包含訊息的一或多個緩衝區,以及內容管理功能所建立的安全性內容。 函式的行為會根據連接、 資料包或資料流程內容正在使用中而有所不同。 如需這些差異的描述,請參閱 SSPI 內容語意

下列函式提供訊息的安全性支援。

函式 描述
DecryptMessage (一般) 安全性內容使用工作階段金鑰解密加密的訊息。
EncryptMessage (一般) 使用安全性內容中的工作階段金鑰來加密訊息。
MakeSignature 產生訊息的密碼編譯總和檢查碼,也包含排序資訊,以防止訊息遺失或插入。
VerifySignature 使用 MakeSignature 函式驗證寄件者所收到的訊息簽章。

SSP/AP 所實作的函式

下列函式是由安全性支援提供者/驗證套件中所包含的安全性套件所實作, (SSP/AP) 。

在下表中,第一組函式是由 Windows XP SSP/AP 安全性套件實作。 第二組函式只會由 SSP/AP 安全性套件實作。

本機安全性授權單位 (LSA) 使用 SSP/AP 的SpLsaModeInitialize函式所提供的SECPKG_FUNCTION_TABLE結構來存取這些函式。

下列函式是由所有驗證套件實作。

函式 描述
LsaApCallPackage 當具有 LSA 信任連線的登入應用程式呼叫LsaCallAuthenticationPackage函式,並指定驗證套件的識別碼時,本機安全性授權單位會呼叫 LSA (LSA) 。
LsaApCallPackagePassthrough 傳送至 LsaCallAuthenticationPackage 函式之傳遞登入要求的分派函式
LsaApCallPackageUntrusted 當具有 LSA 不受信任連線的應用程式呼叫LsaCallAuthenticationPackage函式,並指定驗證套件的識別碼時,本機安全性授權單位會 (LSA) 呼叫。
LsaApInitializePackage 本機安全性授權單位會在系統初始化期間 (LSA) 呼叫一次,以提供驗證套件初始化本身的機會。
LsaApLogonTerminated 用來在登入會話終止時通知驗證套件。 登入會話會在參考登入會話的最後一個權杖刪除時終止。
LsaApLogonUser 驗證使用者的登入認證。
LsaApLogonUserEx 驗證使用者的登入認證。
LsaApLogonUserEx2 用來驗證使用者初始登入的使用者登入嘗試。 系統會為使用者建立新的登入會話,並傳回使用者的驗證資訊。

SSP/AP 安全性套件會實作下列其他函式。

函式 描述
SpAcceptCredentials 本機安全性授權單位 (LSA) 呼叫,以傳遞針對已驗證安全性主體儲存的任何認證的安全性套件
SpAcceptLsaModeCoNtext 伺服器分派函式,用來建立伺服器和用戶端共用 的安全性內容
SpAcquireCredentialsHandle 呼叫 以取得 主體認證的句柄。
SpAddCredentials 用來新增安全性主體認證
SpApplyControlToken 將控制項權杖套用至 安全性內容。 本機 安全性授權單位 目前不會呼叫此函式, (LSA) 。
SpDeleteCoNtext 刪除 安全性內容
SpDeleteCredentials 安全性套件的主要補充認證清單中刪除認證。
SpFreeCredentialsHandle 藉由呼叫SpAcquireCredentialsHandle函式來釋放取得的認證。
SpGetCredentials 擷取使用者認證。
SpGetExtendedInformation 提供 安全性套件的擴充資訊。
SpGetInfo 提供 安全性套件的一般資訊,例如其名稱和功能。
SpGetUserInfo 擷取登入 會話的相關資訊。
SPInitialize 本機 安全性授權單位 (LSA) 呼叫一次,以提供具有一般安全性資訊和支援函式分派資料表的安全性 套件
SpInitLsaModeCoNtext 用戶端分派函式,用來建立伺服器與用戶端之間的 安全性內容
SpQueryCoNtextAttributes 擷取 安全性內容的屬性。
SpQueryCredentialsAttributes 擷取 認證的屬性。
SpSaveCredentials 補充認證 儲存至使用者物件。
SpSetExtendedInformation 設定 安全性套件的擴充資訊。
SpShutdown 在卸載 SSP/AP 之前,執行任何必要的清除。
SslCrackCertificate 傳回 X509Certificate 結構,其中包含指定之憑證 BLOB中的資訊。
SslEmptyCache 從 Schannel 快取中移除指定的字串。
SslFreeCertificate 釋放先前呼叫 SslCrackCertificate 函式所配置的憑證。

使用者模式 SSP/AP 所實作的函式

下列函式是由安全性支援提供者/驗證套件所實作, (SSP/AP) 可載入至用戶端/伺服器應用程式。

SSP/AP 表示它會在SpInitLsaModeCoNtextSpAcceptLsaModeCoNtext函式的MappedCoNtext參數中傳回TRUE,以實作使用者模式函式。 SpInitLsaModeCoNtext函式是由傳輸層級應用程式的用戶端使用,而SpAcceptLsaModeCoNtext則由伺服器端使用。

將 SSP/AP 載入用戶端進程或伺服器進程是由安全性提供者 DLL 處理,Security.dll 或 Secur32.dll。 安全性提供者 DLL 會尋找 SSP/AP 所實作的 SpUserModeInitialize 函式位址,並呼叫它,以載入 SSP/AP。 此函式會傳回一組資料表,其中包含每個 安全性套件中實作之使用者模式函式的指標。

將 SSP/AP 載入用戶端或伺服器進程之後, 本機安全性授權單位 (LSA) 會複製 SpInitLsaModeCoNtextSpAcceptLsaModeCoNtext 所傳回的安全性內容 (資訊,) 以及程式的任何其他內容相關資料,並呼叫安全性套件的 SpInitUserModeCoNtext 函式。

用戶端/伺服器應用程式藉由呼叫 安全性支援提供者介面 (SSPI) 函式來存取使用者模式功能。 SSPI 函式會使用套件所提供的 SECPKG_USER_FUNCTION_TABLE ,由安全性提供者 DLL 對應。

函式 描述
SpCompleteAuthToken 完成驗證權杖。
實作 SSPI CompleteAuthToken 函式。
SpDeleteCoNtext 刪除 安全性內容
實作 SSPI DeleteSecurityCoNtext 函式。
SpExportSecurityCoNtext 將安全性內容匯出至另一個進程。
實作 SSPI ExportSecurityCoNtext 函式。
SpFormatCredentials 將認證格式化為儲存在使用者物件中。
SpGetCoNtextToken 取得要模擬的權杖。
SSPI ImpersonateSecurityCoNtext 函式使用。
SpImportSecurityCoNtext 從另一個進程匯入安全性內容。
實作 SSPI ImportSecurityCoNtext 函式。
SpInitUserModeCoNtext 從已封裝的本機安全性授權單位 (LSA) 模式內容建立使用者模式安全性內容
SpInstanceInit 初始化 SSP/AP 中的使用者模式安全性套件。
SpMakeSignature 根據指定的訊息和安全性內容產生簽章
實作 SSPI MakeSignature 函式
SpMarshallSupplementalCreds 公用格式的補充認證 轉換成適合本機程序呼叫的格式。
SpQueryCoNtextAttributes 擷取 安全性內容的屬性。
實作 SSPI QueryCoNtextAttributes (General) 函式。
SpSealMessage 加密用戶端與伺服器之間交換的訊息。
實作 SSPI EncryptMessage (General) 函式。
SpUnsealMessage 解密先前使用 SpSealMessage 函式加密的訊息。
實作 SSPI DecryptMessage (General) 函式。
SpUserModeInitialize 安全性支援提供者/驗證套件 (SSP/AP) DLL 載入用戶端/伺服器應用程式的進程空間時呼叫。 此函式會針對 SSP/AP DLL 中的每個安全性套件提供SECPKG_USER_FUNCTION_TABLE資料表。
SpVerifySignature 根據 簽章驗證收到的訊息是否正確。
實作 SSPI VerifySignature 函式

SSP/AP 所呼叫的 LSA 函式

本機安全性授權單位 (LSA) 提供下列功能給安全性支援提供者/驗證套件中部署的安全性套件, (SSP/AP) 。 函式可在 LSA_SECPKG_FUNCTION_TABLE 結構中使用,而且可以在 SSP/AP 載入 LSA 的進程空間時呼叫。 下列函式可供所有 AP 使用。

函式 描述
AddCredential 新增使用者 認證
AllocateClientBuffer 在封裝用戶端的位址空間中配置記憶體。
AllocateLsaHeap 在堆積上配置記憶體。 某些傳回 LSA 的資訊預期會使用此函式來配置。
CopyFromClientBuffer 將用戶端進程的位址空間中的資訊複製到目前進程中的緩衝區。
CopyToClientBuffer 將目前進程中的緩衝區資訊複製到用戶端進程的位址空間。
CreateLogonSession 建立登入會話。
DeleteCredential 刪除使用者認證。
DeleteLogonSession 刪除 LSA 登入會話。
FreeClientBuffer 釋放封裝用戶端位址空間中的記憶體。
FreeLsaHeap 解除配置先前由 AllocateLsaHeap配置的堆積記憶體。
GetCredentials 擷取與登入會話相關聯的認證。

下列函式可供 SSP/AP 使用。

函式 描述
AllocateSharedMemory 配置共用記憶體的區段。
AuditAccountLogon 建立嘗試登入的稽核記錄。
AuditLogon 建立登入會話的稽核線索。
CallPackage 呼叫封裝。
CallPackageEx 呼叫另一個套件。
CallPackagePassthrough 從另一個安全性套件呼叫一個安全性套件。
CancelNotification 取消特殊事件的通知。
ClientCallback 允許安全性套件在用戶端進程中叫用函式。
如需 ClientCallback 函式原型,請參閱 ClientCallback 函式原型
CloseSamUser 關閉安全性帳戶管理員資料庫專案的控制碼。
ConvertAuthDataToToken 將授權資料轉換為使用者權杖。
CrackSingleName 將名稱從一種格式轉換成另一種格式。
CreateSharedMemory 建立用戶端與 SSP/AP 之間共用的記憶體區段。
CreateThread 建立新的執行緒。
CreateToken 建立權杖。
DeleteSharedMemory 刪除共用記憶體的區段。
DuplicateHandle 複製控制碼。
FreeReturnBuffer 釋放 LSA 配置的緩衝區。
FreeSharedMemory 釋放共用記憶體的區段。
GetAuthDataForUser 擷取使用者帳戶的授權資料。
GetCallInfo 擷取最近函式呼叫的相關資訊。
GetClientInfo 擷取安全性套件使用者進程的相關資訊。
GetUserAuthData 傳回使用者的授權資料。
GetUserCredentials 尚未實作。
ImpersonateClient 安全性套件 呼叫以模擬套件使用者。
MapBuffer SecBuffer結構對應至安全性支援提供者/驗證套件的位址空間, (SSP/AP) 。
OpenSamUser 擷取 Security Accounts Manager (SAM) 資料庫中使用者帳戶的控制碼。
RegisterNotification 提供一種機制,讓 安全性套件 收到通知。 當事件物件收到訊號時,或在特定系統事件期間,可能會以固定間隔發生通知。
SaveSupplementalCredentials 已過時。 請勿使用。
UnloadPackage 卸載 SSP/AP) (安全性支援提供者/驗證套件
UpdateCredentials 提供一個安全性套件的機制,以通知其他套件登入會話認證已變更。

由使用者模式 SSP/AP 呼叫的 LSA 函式

安全性支援提供者/驗證套件的安全性套件 (SSP/AP) 在使用者模式進程中執行,可以使用SECPKG_DLL_FUNCTIONS資料表中的指標來存取下列函式。

函式 PSDK 狀態
AllocateHeap 為傳回給 本地安全機構 (LSA) 的緩衝區配置記憶體。
FreeHeap 釋放先前使用 AllocateHeap配置的記憶體。
RegisterCallback 註冊使用者模式回呼函式。

GINA 匯出函式

GINA DLL 必須匯出下列函式。

注意

Windows Vista 中會忽略 GINA DLL。

函式 描述
WlxActivateUserShell 啟動使用者殼層程式。
WlxDisplayLockedNotice 允許 GINA 顯示鎖定的相關資訊,例如鎖定工作站的人員,以及鎖定時。
WlxDisplaySASNotice 當沒有任何使用者登入時,Winlogon會呼叫此函式。
WlxDisplayStatusMessage 當 GINA DLL 應該顯示訊息時,Winlogon會呼叫此函式。
WlxGetConsoleSwitchCredentials Winlogon 會呼叫此函式,以讀取目前登入使用者的認證,以透明方式將它們傳輸至目標會話。
WlxGetStatusMessage Winlogon 會呼叫此函式,以取得 GINA DLL 所顯示的狀態訊息。
WlxInitialize Winlogon 會針對電腦上的每個視窗月臺呼叫此函式一次。 作業系統目前支援每個工作站一個視窗月臺。
WlxIsLockOk Winlogon 會先呼叫此函式,然後再嘗試鎖定工作站。
WlxIsLogoffOk 當使用者起始登出作業時,Winlogon會呼叫此函式。
WlxLoggedOnSAS Winlogon 會在使用者登入且工作站未鎖定時收到 安全注意順序 (SAS) 事件時呼叫此函式。
WlxLoggedOutSAS Winlogon 會在收到 安全注意順序 時呼叫此函式, (SAS) 事件,而使用者未登入。
WlxLogoff Winlogon 會呼叫此函式來通知 GINA 此工作站上的登出作業,讓 GINA 執行可能需要的任何登出作業。
WlxNegotiate WlxNegotiate函式必須由取代GINA DLL 實作。 這是 Winlogon 對 GINA DLL 所進行的第一次呼叫。 WlxNegotiate 可讓 GINA 確認它支援已安裝的 Winlogon 版本。
WlxNetworkProviderLoad Winlogon 會呼叫此函式來收集有效的驗證和識別資訊。
WlxRemoveStatusMessage Winlogon 會呼叫此函式,告知 GINA DLL 停止顯示狀態訊息。
WlxScreenSaverNotify Winlogon 會在啟動畫面保護程式之前立即呼叫此函式,讓 GINA 能夠與螢幕保護裝置程式互動。
WlxShutdown Winlogon會在關機之前呼叫此函式,讓 GINA 執行任何關機工作,例如從讀取器退出智慧卡
WlxStartApplication 當系統需要在使用者的內容中啟動應用程式時,Winlogon會呼叫此函式。
WlxWkstaLockedSAS Winlogon 會在收到 安全注意順序 時呼叫此函式, (SAS) 且工作站已鎖定。

登入使用者函式

下列函式提供登入使用者的能力。

函式 描述
LogonUser 嘗試將使用者登入本機電腦。
LogonUserEx 嘗試將使用者登入本機電腦。 此函式是 LogonUser 函式的擴充版本,可擷取登入使用者 安全性識別碼 的相關資訊, (SID) 、設定檔和配額限制。
LogonUserExExW LogonUserExExW函式會嘗試將使用者登入本機電腦。 此函式未在公用標頭中宣告,而且沒有相關聯的匯入程式庫。 您必須使用 LoadLibraryGetProcAddress 函式,以動態方式連結至 Advapi32.dll。

Winlogon 支援函式

吉娜 DLL 可以呼叫下列 Winlogon 支援函式。

注意

Windows Vista 中會忽略 GINA DLL。

函式 由 GINA 呼叫
WlxAssignShellProtection GINA 呼叫,以將保護指派給新登入使用者的殼層程式。
WlxChangePasswordNotify GINA 呼叫,表示它已變更密碼。
WlxChangePasswordNotifyEx GINA 呼叫,告知特定網路提供者 (或所有網路提供者) 密碼已變更。
WlxCloseUserDesktop 由 GINA呼叫以關閉替代使用者桌面,並在桌面關閉之後清除。
WlxCreateUserDesktop GINA 呼叫,為使用者建立替代的應用程式桌面。
WlxDialogBox GINA 呼叫,以從對話方塊範本建立強制回應對話方塊。
WlxDialogBoxIndirect GINA 呼叫,從記憶體中的對話方塊範本建立強制回應對話方塊。
WlxDialogBoxIndirectParam GINA 呼叫以初始化對話方塊控制項,然後從記憶體中的對話方塊範本建立強制回應對話方塊。
WlxDialogBoxParam GINA 呼叫以初始化對話方塊控制項,然後從對話方塊範本資源建立強制回應對話方塊。
WlxDisconnect 如果啟用終端機服務,則由取代 GINA DLL 呼叫。 GINA 會呼叫此函式,以中斷與終端機服務網路會話的連線。
WlxGetOption GINA 呼叫以擷取選項的目前值。
WlxGetSourceDesktop GINA 呼叫,以判斷 Winlogon 切換至 Winlogon 桌面之前目前桌面的名稱和控制碼。
WlxMessageBox GINA 呼叫以建立、顯示及操作訊息方塊。
WlxQueryClientCredentials 如果啟用終端機服務,則由取代 GINA DLL 呼叫。 GINA 會呼叫此函式,以擷取未使用網際網路連接器授權的遠端終端機機服務用戶端認證。
WlxQueryConsoleSwitchCredentials 由 GINA呼叫,以讀取從暫存會話的 Winlogon 傳輸到目的地會話 Winlogon 的認證。
WlxQueryInetConnectorCredentials 如果啟用終端機服務,則由取代 GINA DLL 呼叫。 GINA 會呼叫此函式來判斷終端伺服器是否使用網際網路連接器授權,以及擷取 認證 資訊。
WlxQueryTerminalServicesData 由 GINA呼叫,以在使用者登入之後擷取終端機服務使用者設定資訊。
WlxSasNotify 由 GINA呼叫,以通知Winlogon安全注意順序 (SAS) 事件。
WlxSetCoNtextPointer GINA呼叫,以指定Winlogon傳遞的內容指標做為所有未來對 GINA 函式呼叫的第一個參數。
WlxSetOption GINA 呼叫以設定選項的值。
WlxSetReturnDesktop GINA 呼叫,以指定 Winlogon 會在目前的 安全注意順序 (SAS) 事件處理函式完成時切換至的替代應用程式桌面。
WlxSetTimeout GINA 呼叫以變更與對話方塊相關聯的逾時。 預設逾時為兩分鐘。
WlxSwitchDesktopToUser GINA 呼叫以切換至應用程式桌面。
WlxSwitchDesktopToWinlogon 允許 GINA DLL 切換至 Winlogon 桌面。
WlxUseCtrlAltDel GINA 呼叫,告知 Winlogon 使用標準 CTRL+ALT+DEL 按鍵組合做為 安全注意順序 , (SAS) 。
WlxWin31Migrate 如果啟用終端機服務,則由取代 GINA DLL 呼叫。 GINA 會呼叫此函式以完成終端機服務用戶端的設定。

網路提供者函式

下列主題提供網路提供者函式的參考資訊。

主題 描述
網路提供者所實作的函式 詳細資料可由網路提供者實作的函式。
支援函式 詳細說明作業系統所實作的函式,而且可由網路提供者呼叫。
連線通知函式 當網路資源連線或中斷連線時,需要從 多個提供者路由器 接收通知的應用程式所實作的詳細資料函式 (MPR) 。

網路提供者所實作的函式

網路提供者可以實作下列函式。 唯一需要網路提供者才能支援的函式是 NPGetCaps

函式 描述
NPAddConnection 將本機裝置連線到網路資源。
NPAddConnection3 將本機裝置連線到網路資源。
NPCancelConnection 中斷網路連線。
NPCloseEnum 關閉列舉。
NPDeviceMode 指定裝置的父視窗。 此視窗擁有任何源自裝置的對話方塊。
NPDirectoryNotify 通知網路提供者特定目錄作業。
NPEnumResource 根據 NPOpenEnum傳回的控制碼執行列舉。
NPFormatNetworkName 以提供者特定格式格式化網路名稱,以在控制項中顯示。
NPGetCaps 傳回網路上支援哪些服務的相關資訊。
NPGetConnection 擷取連線的相關資訊。
NPGetConnection3 擷取網路連線的相關資訊,即使目前已中斷連線也一樣。
NPGetConnectionPerformance 傳回用來存取網路資源之連線的預期效能相關資訊。 要求只能用於目前已連線的網路資源。
NPGetDirectoryType 決定網路目錄的類型。
NPGetPropertyText 擷取要新增至網路資源之屬性對話方塊的按鈕名稱。
NPGetResourceInformation 將透過 WNet API 存取的網路資源部分,與透過資源類型特定的 API 存取的部分分開。
NPGetResourceParent 擷取流覽階層中指定網路資源的父系。
NPGetUniversalName 擷取網路資源的通用名稱。 NPGetUniversalName函式可以使用 UNC 格式或較舊的遠端名稱格式來擷取此通用名稱。
NPGetUser 擷取目前預設使用者名稱的值,或用來建立網路連線的使用者名稱。
NPOpenEnum 開啟網路資源或現有連線的列舉。 必須呼叫 NPOpenEnum 函式,才能取得列舉的有效控制碼。
NPPropertyDialog 當使用者按一下使用 NPPropertyDialog 函式新增的按鈕時呼叫。 NPPropertyDialog函式只會針對檔案和目錄網路屬性呼叫。
NPSearchDialog 可讓網路廠商提供自己的流覽和搜尋形式,超出 [ 連線 ] 對話方塊中呈現的階層式檢視。

支援函式

下列函式是由作業系統實作,可由網路提供者呼叫。

函式 描述
WNetSetLastError 設定擴充的錯誤資訊。 網路提供者應該呼叫此函式,而不是 SetLastError

連線通知函式

下列函式是由需要從 多個提供者路由器 接收通知的應用程式所實作, (MPR) 網路資源連線或中斷連線時。 如需如何撰寫接收這類通知之應用程式的詳細資訊,請參閱 接收連線通知

函式 描述
AddConnectNotify 在每個新增連線作業之前和之後呼叫 (WNetAddConnectionWNetAddConnection2WNetAddConnection3) 。
CancelConnectNotify WNetCancelConnection 或 WNetCancelConnection2) (取消連線作業前後呼叫。

LSA 登入函式

下列 本地安全機構 (LSA) 驗證函式驗證和登入使用者,並提供登入會話資訊。

函式 描述
LsaCallAuthenticationPackage 從驗證套件要求套件特定服務。
LsaConnectUntrusted 建立與 LSA 不受信任的連線。
LsaDeregisterLogonProcess 中斷與 LSA 的連線,並釋放配置給呼叫端內容的資源。
LsaEnumerateLogonSessions 擷取現有登入會話的本機 唯一識別碼 (LUID) 。
LsaFreeReturnBuffer 釋放配置給呼叫端之緩衝區的記憶體。
LsaGetLogonSessionData 擷取指定之登入會話的相關資訊。
LsaLogonUser 根據預存認證驗證使用者登入資料。 如果成功,它會建立新的登入會話,並傳回使用者權杖。
LsaLookupAuthenticationPackage 取得驗證套件的唯一識別碼。
LsaQueryDomainInformationPolicy Policy 物件擷取定義域資訊。
LsaQueryForestTrustInformation 擷取指定 之本機安全性授權單位TrustedDomain 物件的樹系信任資訊。
LsaRegisterLogonProcess 建立與 LSA 伺服器的連線,並確認呼叫端是登入應用程式。
LsaSetDomainInformationPolicy 將定義域資訊設定為 Policy 物件。
LsaSetForestTrustInformation 會設定指定 之本機安全性授權單位TrustedDomain 物件的樹系信任資訊。

驗證套件所實作的函式

自訂驗證套件必須實作這些函式,由 本地安全機構 (LSA) 呼叫。 這些函式是由 Microsoft 提供的MSV1_0和 Kerberos 驗證套件所實作。

函式 描述
LsaApCallPackage 當使用受信任連線的應用程式呼叫 LsaCallAuthenticationPackage 中指定驗證套件的識別碼時呼叫。
此函式提供登入應用程式直接與驗證套件通訊的方式。
LsaApCallPackagePassthrough 在呼叫 LsaCallAuthenticationPackage 以取得傳遞登入要求時呼叫驗證套件的識別碼時呼叫。
LsaApCallPackageUntrusted 當使用不受信任的連線的應用程式呼叫 LsaCallAuthenticationPackage 中指定驗證套件的識別碼時呼叫。 此函式用於與沒有 SeTcbPrivilege 許可權的進程通訊。
LsaApInitializePackage 在系統初始化期間呼叫,以允許驗證套件執行初始化工作。
LsaApLogonTerminated 登入會話結束時呼叫,以允許驗證套件釋放配置給登入會話的任何資源。
LsaApLogonUser 在呼叫 LsaLogonUser中指定驗證套件時呼叫。 此函式會驗證 安全性主體的 登入資料。
LsaApLogonUserEx LsaApLogonUser 相同,不同之處在于它會針對稽核目的傳回工作站名稱。
驗證套件可以實作 LsaApLogonUserLsaApLogonUserExLsaApLogonUserEx2。 它不需要全部實作。
LsaApLogonUserEx2 LsaApLogonUserEx 相同,不同之處在于它會傳回安全性主體的主要和補充認證。 驗證套件可以實作 LsaApLogonUserLsaApLogonUserExLsaApLogonUserEx2。 它不需要全部實作。

由驗證套件呼叫的 LSA 函式

您可以從自訂驗證套件呼叫下列 本機安全性授權單位 (LSA) 函式。 當 LSA 呼叫 LsaApInitializePackage 來初始化封裝時,它會傳遞支援函式的資料表。

函式 描述
AddCredential 將認證新增至登入會話。
AllocateClientBuffer 在用戶端的位址空間中配置緩衝區。
AllocateLsaHeap 配置必須從驗證套件傳回至 LSA 的緩衝區。
CopyFromClientBuffer 將用戶端位址空間中的緩衝區內容複寫到本機緩衝區。
CopyToClientBuffer 將本機緩衝區的內容複寫到用戶端的位址空間。
CreateLogonSession 由驗證套件用來建立登入會話。
DeleteCredential 刪除現有的認證。
DeleteLogonSession 清除判斷使用者驗證資訊是否合法時所建立的任何登入會話。
FreeClientBuffer 釋放先前使用 AllocateClientBuffer 函式配置的用戶端緩衝區。
FreeLsaHeap 使用 AllocateLsaHeap 函式釋放先前配置的緩衝區。
GetCredentials 擷取先前由 AddCredential快取的認證。

子驗證函式

Microsoft 提供的驗證套件可以呼叫下列子驗證函式,以提供額外的使用者建立登入驗證。

函式 描述
Msv1_0SubAuthenticationFilter 執行網域控制站專屬的使用者登入驗證。
Msv1_0SubAuthenticationRoutine 執行用戶端/伺服器特定的驗證。

認證管理功能

下列主題提供認證管理功能的參考資訊。

主題 描述
認證管理 UI 函式 詳細資料用於認證管理 UI 的函式。
低階認證管理功能 詳細資料用於低階認證管理的函式。
認證管理通知函式 詳細資料認證管理員所實作的函式,以在驗證資訊變更時接收通知。

認證管理 UI 函式

以下是認證管理 UI 函式。

函式 描述
CredUICmdLinePromptForCredentials 提示並接受來自在命令列程式中工作的使用者的使用者認證資訊。
CredUIConfirmCredentials 確認 CredUIPromptForCredentialsCredUICmdLinePromptForCredentials傳回的認證有效性。
CredUIParseUserName 從完整使用者名稱擷取網域和使用者帳戶名稱。
CredUIPromptForCredentials 顯示接受使用者認證資訊的對話方塊。
CredUIPromptForWindowsCredentials 建立並顯示可設定的對話方塊,讓使用者能夠使用安裝在本機電腦上的任何認證提供者來提供認證資訊。
CredUIReadSSOCredW 擷取單一登入認證的使用者名稱。
CredUIStoreSSOCredW 儲存單一登入認證。

低階認證管理功能

以下是低階認證管理功能。

函式 描述
CredDelete 從使用者的認證集刪除認證。
CredEnumerate 列出使用者認證集中的認證。
CredFindBestCredential 搜尋認證 管理 (CredMan) 資料庫,以取得與目前登入會話相關聯的一組泛型認證,且最符合指定的目標資源。
CredFree 釋放任何認證管理功能所傳回之緩衝區所使用的記憶體。
CredGetSessionTypes 擷取目前登入會話所支援的最大持續性。
CredGetTargetInfo 擷取具名資源的所有已知目標名稱資訊。
CredIsMarshaledCredential 判斷指定的使用者名稱字串是否為先前由 CredMarshalCredential封送處理的封送處理認證。
CredIsProtected 指定先前對 CredProtect 函式的呼叫是否加密指定的認證。
CredMarshalCredential 將認證轉換成文字字串。
CredPackAuthenticationBuffer 將字串使用者名稱和密碼轉換成驗證緩衝區。
CredProtect 加密指定的認證,讓目前的安全性內容只能解密認證。
CredRead 從使用者的認證集讀取認證。
CredReadDomainCredentials 從使用者的認證集讀取網域認證。
CredRename 從使用者的認證集重新命名認證。
CredUnmarshalCredential 將封送處理認證字串轉換回其非封送形式。
CredUnPackAuthenticationBuffer 呼叫 CredUIPromptForWindowsCredentials 函式所傳回的驗證緩衝區轉換成字串使用者名稱和密碼。
CredUnprotect 解密先前使用 CredProtect 函式加密的認證。
CredWrite 在使用者的認證集中建立新的認證或修改現有的認證。
CredWriteDomainCredentials 將網域認證寫入使用者的認證集。

認證管理通知函式

下列函式是由認證管理員實作,以在驗證資訊變更時接收通知。

函式 描述
NPLogonNotify MPR 會呼叫此函式來通知認證管理員已發生登入事件,讓認證管理員能夠傳回登入腳本。
NPPasswordChangeNotify MPR 會呼叫此函式,以通知認證管理員密碼變更事件。

智慧卡函式

智慧卡 SDK 提供下列功能。

函式 描述
GetOpenCardName SCardUIDlgSelectCard取代,以顯示智慧卡 [選取卡片 ] 對話方塊。
SCardAccessStartedEvent 當智慧卡資源管理員啟動時,取得事件控制碼。
SCardAddReaderToGroup 讀取器 新增至讀取器群組。
SCardAudit 將事件訊息寫入 Windows 應用程式記錄 Microsoft-Windows-SmartCard-Audit/Authentication。
SCardBeginTransaction 啟動 交易
SCardCancel 終止 內容中的所有未處理動作。
SCardCancelTransaction 保留供未來使用。
SCardConnect 建立呼叫應用程式與智慧卡之間的連線。
SCardControl 在呼叫 SCardConnect 之後,取得讀取器的直接控制權。
SCardDisconnect 結束通話應用程式與智慧卡之間的連線。
SCardEndTransaction 完成 交易
SCardEstablishCoNtext 建立存取智慧卡資料庫 的資源管理員內容
SCardForgetCardType 智慧卡子系統移除先前定義的智慧卡。
SCardForgetReader 從智慧卡子系統移除先前定義的讀取器。
SCardForgetReaderGroup 從智慧卡子系統移除先前定義的讀取器群組。
SCardFreeMemory 釋放資源管理員配置的記憶體。
SCardGetAttrib 從指定的 讀取器、驅動程式或 智慧卡取得目前讀取器的屬性。
SCardGetCardTypeProviderName 取得指定卡片名稱和提供者類型的提供者名稱。
SCardGetDeviceTypeId 取得指定讀取器名稱之卡片讀取器的裝置類型識別碼。 此函式不會影響讀取器的狀態。
SCardGetProviderId 取得智慧卡 主要服務提供者 的識別碼 (GUID) 。
SCardGetReaderDeviceInstanceId 取得指定讀取器名稱之卡片讀取器的裝置實例識別碼。 此函式不會影響讀取器的狀態。
SCardGetReaderIcon 取得指定讀取器名稱之智慧卡閱讀機的圖示。
SCardGetStatusChange 封鎖執行,直到讀取器的狀態變更為止。
SCardGetTransmitCount 擷取自插入指定卡片讀取器之後已完成的傳輸作業數目。
SCardIntroduceCardType 將新的智慧卡引進 智慧卡 子系統。
SCardIntroduceReader 引進智慧卡子系統的新讀取器。
SCardIntroduceReaderGroup 引進智慧卡子系統的新讀取器群組。
SCardIsValidCoNtext 驗證智慧卡內容控制碼。
SCardListCards 提供已導入子系統的智慧卡清單。
SCardListInterfaces 提供指定智慧卡所提供的介面清單。
SCardListReaderGroups 提供已導入子系統的讀取器群組清單。
SCardListReaders 提供已導入子系統的讀取器清單。
SCardListReadersWithDeviceInstanceId 取得已提供裝置實例識別碼的讀取器清單。 此函式不會影響讀取器的狀態。
SCardLocateCards 找出符合指定 ATR 字串的卡片。
SCardLocateCardsByATR 找出符合指定 ATR 字串的卡片。
SCardReadCache 智慧卡所維護的全域快取擷取名稱/值組的值部分Resource Manager。
SCardReconnect 重新建立從呼叫端應用程式到智慧卡的現有連線。
SCardReleaseCoNtext 關閉已建立 的資源管理員內容
SCardReleaseStartedEvent 使用 SCardAccessStartedEvent 函式遞減所取得控制碼的參考計數。
SCardRemoveReaderFromGroup 從現有的讀取器群組中移除讀取器。
SCardSetAttrib 設定指定的讀取器屬性。
SCardSetCardTypeProviderName 設定卡片名稱和提供者類型的提供者名稱。
SCardStatus 取得讀取器的目前 狀態
SCardTransmit 將服務要求傳送至智慧卡。
SCardUIDlgSelectCard 顯示智慧卡 [ 選取卡片 ] 對話方塊。
SCardWriteCache 將名稱/值組從智慧卡寫入智慧卡所維護的全域快取Resource Manager。

SASL 函式

簡單驗證和安全性層 (SASL) 提供下列功能。

函式 Description
SaslAcceptSecurityCoNtext 包裝對 SSPI AcceptSecurityCoNtext 的標準呼叫 (一般) 函式,並包含建立 SASL 伺服器 Cookie。
SaslEnumerateProfiles 列出提供 SASL 介面的套件。
SaslGetCoNtextOption 擷取指定 SASL 內容的指定屬性。
SaslGetProfilePackage 傳回指定封裝的封裝資訊。
SaslIdentifyPackage 傳回符合指定 SASL 交涉緩衝區的交涉前置詞。
SaslInitializeSecurityCoNtext 將標準呼叫包裝至 SSPI InitializeSecurityCoNtext (一般) 函式,並從伺服器處理 SASL 伺服器 Cookie。
SaslSetCoNtextOption 設定指定 SASL 內容的指定屬性值。

其他函數

以下是用於驗證的其他函式。

函式 描述
AddSecurityPackage 安全性支援提供者 新增至 Microsoft Negotiate支援的提供者清單。
ChangeAccountPassword 使用指定的 安全性支援提供者變更 Windows 網域帳戶的密碼。
CredMarshalTargetInfo 將指定的目標序列化為位元組值的陣列。
DeleteSecurityPackage Microsoft Negotiate支援的提供者清單中刪除安全性支援提供者
LsaManageSidNameMapping 從向 LSA 查閱服務註冊的對應集新增或移除 SID/名稱對應。
LsaOpenPolicy 開啟本機或遠端系統上 Policy 物件的控制碼。
LsaQueryInformationPolicy 擷取 Policy 物件的相關資訊。
LsaSetInformationPolicy 修改 Policy 物件中的資訊。
NPFMXEditPerm 可讓網路廠商提供自己的許可權編輯器對話方塊。
NPFMXGetPermCaps 擷取許可權編輯器的功能。 傳回值是位元遮罩,指出要啟用檔案管理員中哪些 安全性 功能表項目。
NPFMXGetPermHelp 選取 [檔案管理員 的安全性 ] 功能表中的功能表項目,並按下 F1 時,擷取許可權編輯器對話方塊的說明檔和說明內容。
SeciAllocateAndSetIPAddress 設定要在安全性稽核事件中顯示的呼叫端 IP 位址。
SeciFreeCallCoNtext 釋放 SeciAllocateAndSetIPAddress配置的記憶體。
SpGetCredUICoNtextFn 從認證提供者擷取內容資訊。
SpLsaModeInitialize 為 LSA 提供 SSP/AP DLL 中每個 安全性套件 所實作之函式的指標。
SpQueryMetaDataFn 在起始安全性內容時,從安全性支援提供者 (SSP) 取得中繼資料。
SpUpdateCredentialsFn 更新與指定內容相關聯的認證。
SspiCompareAuthIdentities 比較兩個指定的認證。
SspiCopyAuthIdentity 建立指定之不透明認證結構的複本。
SspiDecryptAuthIdentity 解密指定的加密認證。
SspiEncodeAuthIdentityAsStrings 將指定的驗證識別編碼為三個字串。
SspiEncodeStringsAsAuthIdentity 將一組三個認證字串編碼為驗證身分識別結構。
SspiEncryptAuthIdentity 加密指定的識別結構。
SspiExcludePackage 建立新的身分識別結構,這是修改的指定身分識別結構的複本,以排除指定的 安全性支援提供者 (SSP) 。
SspiFreeAuthIdentity 釋放為指定識別結構配置的記憶體。
SspiGetCredUICoNtext 從認證提供者擷取內容資訊。
SspiGetTargetHostName 取得與指定之目標相關聯的主機名稱。
SspiIsAuthIdentityEncrypted 指出指定的識別結構是否加密。
SspiIsPromptingNeeded 指出在呼叫 InitializeSecurityCoNtextAcceptSecurityCoNtext 函式之後傳回的錯誤是否需要對 SspiPromptForCredentials 函式進行額外的呼叫。
SspiLocalFree 釋放與指定緩衝區相關聯的記憶體。
SspiMarshalAuthIdentity 將指定的識別結構序列化為位元組陣列。
SspiPrepareForCredRead 從指定的身分識別結構產生目標名稱和認證類型。
SspiPrepareForCredWrite 從身分識別結構產生值,以當做 CredWrite 函式呼叫中的參數值傳遞。
SspiPromptForCredentials 允許 安全性支援提供者介面 (SSPI) 應用程式提示使用者輸入認證。
SspiUnmarshalAuthIdentity 將指定的位元組值陣列還原序列化為識別結構。
SspiUnmarshalCredUICoNtext 在先前呼叫 ICredentialProvider::SetSerialization 方法期間,還原序列化認證提供者所取得的認證資訊。
SspiUpdateCredentials 更新與指定內容相關聯的認證。
SspiValidateAuthIdentity 指出指定的識別結構是否有效。
SspiZeroAuthIdentity 以零填滿與指定識別結構相關聯的記憶體區塊。
WlxQueryTsLogonCredentials 由取代 GINA DLL 呼叫,以在啟用終端機服務時擷取 認證 資訊。 GINA DLL 接著可以使用此資訊自動填入登入方塊,並嘗試登入使用者。