驗證函式
驗證函式會根據使用方式進行分類,如下所示:
- SSPI 函式
- 由 SSP/AP 實作的函式
- 使用者模式 SSP/AP 實作的函式
- 由 SSP/AP 呼叫的 LSA 函式
- 由使用者模式 SSP/APs 呼叫的 LSA 函式
- GINA 匯出函式
- 登入使用者函式
- Winlogon 支援函式
- 網路提供者函式
- LSA 登入函式
- 驗證套件所實作的函式
- 由驗證套件呼叫的 LSA 函式
- 子驗證函式
- 認證管理功能
- 智慧卡函式
- SASL 函式
- 其他函式
SSPI 函式
安全性支援提供者介面 (SSPI) 函式屬於下列主要類別。
-
列出可用 安全性套件 並選取套件的函式。
-
建立和使用主體認證句柄的函式。
-
使用認證句柄建立 安全性內容的函式。
-
在透過安全連線進行訊息交換期間,使用安全性內容確保訊息完整性和隱私權的函式。 完整性是透過訊息簽署和簽章驗證來達成。 隱私權是透過訊息加密和解密來達成。
封裝管理
SSPI 套件管理功能會 起始安全性套件、列舉可用的套件,以及查詢安全性套件的屬性。 下列 SSPI 函式提供安全性套件的管理服務。
函式 | 描述 |
---|---|
EnumerateSecurityPackages | 列出可用的安全性套件及其功能。 |
InitSecurityInterface | 擷取安全性支援提供者 (SSP) 分派數據表的指標。 |
QuerySecurityPackageInfo | 擷取指定 之安全性套件的相關信息。 這項資訊包含驗證資訊、 認證和內容大小的界限。 |
認證管理
SSPI 認證管理功能提供認證句柄、不透明安全性對象的參考,以存取主體。 安全性物件不透明,因為應用程式只能存取句柄,而不是結構的實際內容。
認證內容之內容的所有參考都是透過物件的句柄,而 安全性套件 會取值句柄來存取認證的特定數據。 認證句柄是 {0x00000000, 0x00000000} 与 {0xFFFFFFFF, 0xFFFFFFFE} 之間的 64 位值。
認證管理功能也會釋放認證句柄,並查詢認證的屬性。 目前,與認證相關聯的名稱是唯一可以查詢的屬性。
下列函式會與認證管理搭配使用。
函式 | 描述 |
---|---|
AcquireCredentialsHandle (一般) | 取得指定主體之預先存在認證的句柄。 |
ExportSecurityContext | 將安全性內容匯出至內容緩衝區。 |
FreeCredentialsHandle | 釋放認證句柄和相關聯的資源。 |
ImportSecurityContext | 使用 ExportSecurityContext 將導出的安全性內容匯入目前進程。 |
QueryCredentialsAttributes | 擷取認證的屬性,例如與認證相關聯的名稱。 |
內容管理
SSPI 內容管理功能會建立及使用安全性內容。
在通訊連結中,客戶端和伺服器會合作建立共用的安全性內容。 用戶端和伺服器都使用安全性內容搭配訊息支援函式,以確保連線期間的訊息完整性和隱私權。
安全性內容是不透明的安全性物件。 應用程式無法使用安全性內容中的資訊。 內容管理功能會建立和使用內容句柄,而安全性套件會取值內容句柄來存取其安全性內容。
內容句柄是 {0x00000000, 0x00000000} 与 {0xFFFFFFFF, 0xFFFFFFFE} 之間的 64 位值。
下列函式會與內容管理搭配使用。
函式 | 描述 |
---|---|
AcceptSecurityContext (一般) | 由伺服器用來根據從用戶端接收的不透明訊息來建立安全性內容。 |
ApplyControlToken | 將補充安全性訊息套用至現有的安全性內容。 |
CompleteAuthToken | 完成驗證令牌。 傳輸應用程式更新某些訊息參數之後,需要修改安全性資訊的通訊協定,例如 DCE 會使用此函式。 |
DeleteSecurityContext | 釋放安全性內容和相關聯的資源。 |
FreeContextBuffer | 釋放由安全性套件配置的記憶體緩衝區。 |
ImpersonateSecurityContext | 模擬安全性內容,以顯示為系統的用戶端。 |
InitializeSecurityContext (一般) | 用戶端用來起始安全性內容,方法是產生要傳遞至伺服器的不透明訊息。 |
QueryContextAttributes (一般) | 可讓傳輸應用程式查詢安全性套件是否有安全性內容的特定屬性。 |
QuerySecurityContextToken | 取得用戶端安全性內容的存取令牌,並直接使用它。 |
SetContextAttributes | 可讓傳輸應用程式設定安全性套件的安全性內容屬性。 此函式僅受安全通道安全性套件支援。 |
RevertSecurityContext | 允許安全性套件停止呼叫端的模擬,並還原自己的安全性內容。 |
訊息支援
SSPI 訊息支援函式可讓應用程式傳輸和接收防竄改訊息,以及加密和解密訊息。 這些函式會使用包含訊息的一或多個緩衝區,以及內容管理功能所建立的安全性內容。 函式的行為會根據連接、 數據報或數據流內容正在使用中而有所不同。 如需這些差異的描述,請參閱 SSPI 內容語意。
下列函式提供訊息的安全性支援。
函式 | 描述 |
---|---|
DecryptMessage (一般) | 使用安全性內容中的會話密鑰來解密加密的訊息。 |
EncryptMessage (一般) | 使用來自安全性內容的會話密鑰來加密訊息。 |
MakeSignature | 產生訊息的密碼編譯總和檢查碼,也包含排序資訊,以防止訊息遺失或插入。 |
VerifySignature | 使用 MakeSignature 函式驗證發件人所收到的訊息簽章。 |
由 SSP/AP 實作的函式
下列函式是由安全性支援提供者/驗證套件 (SSP/APs) 中包含的安全性套件所實作。
在下表中,第一組函式是由 Windows XP SSP/AP 安全性套件實作。 第二組函式只會由 SSP/AP 安全性套件實作。
Local Security Authority (LSA) 會使用 SSP/AP 的 SpLsaModeInitialize 函式所提供的SECPKG_FUNCTION_TABLE結構來存取這些函式。
下列函式是由所有驗證套件實作。
函式 | 描述 |
---|---|
LsaApCallPackage | 當具有 LSA 受信任連線的登入應用程式呼叫 LsaCallAuthenticationPackage 函式,並指定驗證套件的標識符時,由本地安全機構 (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 | 從安全通道快取中移除指定的字串。 |
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 載入用戶端或伺服器進程之後,Local Security Authority (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 | 關閉 Security Accounts Manager 資料庫專案的句柄。 |
ConvertAuthDataToToken | 將授權資料轉換為使用者令牌。 |
CrackSingleName | 將名稱從一種格式轉換成另一種格式。 |
CreateSharedMemory | 建立用戶端與 SSP/AP 之間共用的記憶體區段。 |
CreateThread | 建立新的線程。 |
CreateToken | 建立令牌。 |
DeleteSharedMemory | 刪除共用記憶體的區段。 |
DuplicateHandle | 複製句柄。 |
FreeReturnBuffer | 釋放 LSA 所配置的緩衝區。 |
FreeSharedMemory | 釋放共用記憶體的區段。 |
GetAuthDataForUser | 擷取用戶帳戶的授權數據。 |
GetCallInfo | 擷取最新函數調用的相關信息。 |
GetClientInfo | 擷取安全性套件使用者程序的相關信息。 |
GetUserAuthData | 傳回使用者的授權數據。 |
GetUserCredentials | 尚未實作。 |
ImpersonateClient | 由 安全性套件 呼叫,以模擬套件使用者。 |
MapBuffer | 將 SecBuffer 結構對應至安全性支援提供者/驗證套件 (SSP/AP) 的地址空間。 |
OpenSamUser | 擷取安全性帳戶管理員 (SAM) 資料庫中用戶帳戶的句柄。 |
RegisterNotification | 提供通知安全性套件的機制。 當事件物件收到訊號或特定系統事件時,可能會以固定間隔發生通知。 |
SaveSupplementalCredentials | 已過時。 請勿使用。 |
UnloadPackage | 卸除安全性支援提供者/驗證套件 (SSP/AP)。 |
UpdateCredentials | 提供一個安全性套件的機制,以通知其他封裝登入會話的認證已變更。 |
由使用者模式 SSP/APs 呼叫的 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 支援函式
GINA 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 | 擷取指定之 Local Security Authority TrustedDomain 物件的樹系信任資訊。 |
LsaRegisterLogonProcess | 建立與 LSA 伺服器的連線,並驗證呼叫端是否為登入應用程式。 |
LsaSetDomainInformationPolicy | 將網域資訊設定為 Policy 物件。 |
LsaSetForestTrustInformation | 會設定指定之 Local Security Authority TrustedDomain 物件的樹系信任資訊。 |
驗證套件所實作的函式
自定義驗證套件必須實作這些函式,由本地安全機構 (LSA) 呼叫。 這些函式是由MSV1_0和Microsoft提供的 Kerberos 驗證套件所實作。
函式 | 描述 |
---|---|
LsaApCallPackage | 當使用受信任連線的應用程式呼叫 LsaCallAuthenticationPackage 中指定驗證套件的標識符時呼叫。 此函式提供登入應用程式直接與驗證套件通訊的方式。 |
LsaApCallPackagePassthrough | 在呼叫 LsaCallAuthenticationPackage 以取得傳遞登入要求時,呼叫驗證套件的標識符。 |
LsaApCallPackageUntrusted | 當應用程式使用不受信任的連線呼叫 LsaCallAuthenticationPackage 時,呼叫驗證套件的識別碼。 此函式用於與沒有 SeTcbPrivilege 許可權的進程通訊。 |
LsaApInitializePackage | 在系統初始化期間呼叫,以允許驗證套件執行初始化工作。 |
LsaApLogonTerminated | 當登入會話結束時呼叫,以允許驗證套件釋放配置給登入會話的任何資源。 |
LsaApLogonUser | 在呼叫 LsaLogonUser 時呼叫驗證套件時呼叫。 此函式會 驗證安全性主體的 登入數據。 |
LsaApLogonUserEx | 與 LsaApLogonUser 相同,不同之處在於它會針對稽核目的傳回工作站名稱。 驗證套件可以實作 LsaApLogonUser、LsaApLogonUserEx 或 LsaApLogonUserEx2。 不需要全部實作。 |
LsaApLogonUserEx2 | 與 LsaApLogonUserEx 相同,不同之處在於它會傳回安全性主體的主要和補充認證。 驗證套件可以實作 LsaApLogonUser、LsaApLogonUserEx 或 LsaApLogonUserEx2。 不需要全部實作。 |
由驗證套件呼叫的 LSA 函式
您可以從自訂驗證套件呼叫下列 Local Security Authority (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 | 從智慧卡資源管理員所維護的全域快取擷取名稱/值組的值部分。 |
SCardReconnect | 重新建立從呼叫端應用程式到智慧卡的現有連線。 |
SCardReleaseContext | 關閉已建立 的資源管理員內容。 |
SCardReleaseStartedEvent | 遞減使用 SCardAccessStartedEvent 函式取得之句柄的參考計數。 |
SCardRemoveReaderFromGroup | 從現有的讀取器群組中移除讀取器。 |
SCardSetAttrib | 設定指定的讀取器屬性。 |
SCardSetCardTypeProviderName | 設定卡片名稱和提供者類型的提供者名稱。 |
SCardStatus | 取得讀取器目前 的狀態 。 |
SCardTransmit | 將服務要求傳送至智慧卡。 |
SCardUIDlgSelectCard | 顯示 [智慧卡選取卡片] 對話框。 |
SCardWriteCache | 將智慧卡的名稱/值組寫入智慧卡資源管理員所維護的全域快取。 |
SASL 函式
簡單驗證和安全性層 (SASL) 提供下列功能。
函式 | 描述 |
---|---|
SaslAcceptSecurityContext | 包裝 SSPI AcceptSecurityContext (一般) 函式的標準呼叫,並包含建立 SASL 伺服器 Cookie。 |
SaslEnumerateProfiles | 列出提供SASL介面的套件。 |
SaslGetContextOption | 擷取指定 SASL 內容的指定屬性。 |
SaslGetProfilePackage | 傳回指定封裝的封裝資訊。 |
SaslIdentifyPackage | 傳回符合指定SASL交涉緩衝區的交涉前置詞。 |
SaslInitializeSecurityContext | 包裝 SSPI InitializeSecurityContext (一般) 函式的標準呼叫,並從伺服器處理 SASL 伺服器 Cookie。 |
SaslSetContextOption | 設定指定SASL內容之指定屬性值。 |
其他函式
以下是用於驗證的其他函式。