驗證函式
驗證函式會根據使用方式進行分類,如下所示:
- SSPI 函式
- SSP/AP 所實作的函式
- 使用者模式 SSP/AP 實作的函式
- 由 SSP/AP 呼叫的 LSA 函式
- 由使用者模式 SSP/AP 呼叫的 LSA 函式
- GINA 匯出函式
- 登入使用者函式
- Winlogon 支援函式
- 網路提供者函式
- LSA 登入函式
- 驗證套件所實作的函式
- 驗證套件所呼叫的 LSA 函式
- 子驗證函式
- 認證管理功能
- 智慧卡函式
- SASL 函式
- 其他函式
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 表示它會在SpInitLsaModeCoNtext和SpAcceptLsaModeCoNtext函式的MappedCoNtext參數中傳回TRUE,以實作使用者模式函式。 SpInitLsaModeCoNtext函式是由傳輸層級應用程式的用戶端使用,而SpAcceptLsaModeCoNtext則由伺服器端使用。
將 SSP/AP 載入用戶端進程或伺服器進程是由安全性提供者 DLL 處理,Security.dll 或 Secur32.dll。 安全性提供者 DLL 會尋找 SSP/AP 所實作的 SpUserModeInitialize 函式位址,並呼叫它,以載入 SSP/AP。 此函式會傳回一組資料表,其中包含每個 安全性套件中實作之使用者模式函式的指標。
將 SSP/AP 載入用戶端或伺服器進程之後, 本機安全性授權單位 (LSA) 會複製 SpInitLsaModeCoNtext 或 SpAcceptLsaModeCoNtext 所傳回的安全性內容 (資訊,) 以及程式的任何其他內容相關資料,並呼叫安全性套件的 SpInitUserModeCoNtext 函式。
用戶端/伺服器應用程式藉由呼叫 安全性支援提供者介面 (SSPI) 函式來存取使用者模式功能。 SSPI 函式會使用套件所提供的 SECPKG_USER_FUNCTION_TABLE ,由安全性提供者 DLL 對應。
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函式會嘗試將使用者登入本機電腦。 此函式未在公用標頭中宣告,而且沒有相關聯的匯入程式庫。 您必須使用 LoadLibrary 和 GetProcAddress 函式,以動態方式連結至 Advapi32.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 | 在每個新增連線作業之前和之後呼叫 (WNetAddConnection、 WNetAddConnection2和 WNetAddConnection3) 。 |
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 相同,不同之處在于它會針對稽核目的傳回工作站名稱。 驗證套件可以實作 LsaApLogonUser、 LsaApLogonUserEx或 LsaApLogonUserEx2。 它不需要全部實作。 |
LsaApLogonUserEx2 | 與 LsaApLogonUserEx 相同,不同之處在于它會傳回安全性主體的主要和補充認證。 驗證套件可以實作 LsaApLogonUser、 LsaApLogonUserEx或 LsaApLogonUserEx2。 它不需要全部實作。 |
由驗證套件呼叫的 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 | 確認 CredUIPromptForCredentials 或 CredUICmdLinePromptForCredentials傳回的認證有效性。 |
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 內容的指定屬性值。 |
其他函數
以下是用於驗證的其他函式。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應