Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
AcquireCredentialsHandle (Schannel) işlevi, bir güvenlik sorumlusunun önceden var olan kimlik bilgilerini almak için bir tanıtıcı alır. Bu tanıtıcı InitializeSecurityContext (Schannel) ve AcceptSecurityContext (Schannel) işlevleri için gereklidir. Bunlar, burada açıklanmayan bir sistem oturumu aracılığıyla oluşturulan önceden var olan kimlik bilgileri olabilir veya çağıran alternatif kimlik bilgileri sağlayabilir.
Uyarı
Bu bir "ağda oturum açma" değildir ve kimlik bilgilerinin toplandığı anlamına gelmez.
Sözdizimi
SECURITY_STATUS SEC_Entry AcquireCredentialsHandle(
_In_opt_ SEC_CHAR *pszPrincipal,
_In_ SEC_CHAR *pszPackage,
_In_ ULONG fCredentialUse,
_In_opt_ PLUID pvLogonID,
_In_opt_ PVOID pAuthData,
_In_opt_ SEC_GET_KEY_FN pGetKeyFn,
_In_opt_ PVOID pvGetKeyArgument,
_Out_ PCredHandle phCredential,
_Out_opt_ PTimeStamp ptsExpiry
);
Parametreler
pszPrincipal[in, optional]
Tanıtıcının başvuracağı kimlik bilgilerine sahip sorumlunun adını belirten null olarak sonlandırılan bir dize işaretçisi.
Schannel SSP kullanılırken bu parametre kullanılmaz ve olarak NULL
ayarlanmalıdır.
Uyarı
Tanıtıcıyı isteyen işlemin kimlik bilgilerine erişimi yoksa işlev bir hata döndürür. Null dize, işlemin güvenlik bağlamı altında yürütülmekte olan kullanıcının kimlik bilgileri için bir tanıtıcı gerektirdiğini gösterir.
pszPackage[in]
Bu kimlik bilgilerinin kullanılacağı güvenlik paketinin adını belirten null olarak sonlandırılan bir dize işaretçisi. Bu, EnumerateSecurityPackages işlevi tarafından döndürülen Bir SecPkgInfo yapısının Name üyesinde döndürülen bir güvenlik paketi adıdır. Bağlam oluşturulduktan sonra QueryContextAttributes (Schannel), kullanımdaki güvenlik paketiyle ilgili bilgileri döndürmek için SECPKG_ATTR_PACKAGE_INFO olarak ayarlanmış ulAttribute ile çağrılabilir.
Schannel SSP'yi kullanırken, bu parametreyi olarak UNISP_NAME
ayarlayın.
Uyarı
AcquireCredentialsHandle(Schannel) çağrıldıktan sonra InitializeSecurityContext (Schannel) çağrılırken sorunlarla karşılaşan çekirdek modu arayanları alternatif olarak pszPackageSCHANNEL_NAME
olarak ayarlayabilir.
fCredentialUse[in]
Bu kimlik bilgilerinin nasıl kullanılacağını gösteren bayrak. Bu parametre aşağıdaki değerlerden biri olabilir.
Değer | Anlamı |
---|---|
SECPKG_CRED_INBOUND | Gelen sunucu kimlik bilgilerini doğrulayın. InitializeSecurityContext (Schannel) veya AcceptSecurityContext (Schannel) çağrıldığında gelen kimlik bilgileri kimlik doğrulama yetkilisi kullanılarak doğrulanabilir. Böyle bir yetkili yoksa işlev başarısız olur ve SEC_E_NO_AUTHENTICATING_AUTHORITY döndürür. Doğrulama pakete özgüdür. |
SECPKG_CRED_OUTBOUND | Yerel istemci kimlik bilgilerinin giden belirteci hazırlamasına izin verin. |
pvLogonID[in, optional]
Kullanıcıyı tanımlayan yerel olarak benzersiz bir tanımlayıcıya (LUID) yönelik bir işaretçi. Bu parametre, ağ yeniden yönlendiricileri gibi dosya sistemi işlemleri için sağlanır. Bu parametre olabilir NULL
.
Schannel SSP kullanılırken bu parametre kullanılmaz ve olarak NULL
ayarlanmalıdır.
pAuthData[in, optional]
Pakete özgü verilerin işaretçisi. Bu parametre, NULL
bu güvenlik paketi için varsayılan kimlik bilgilerinin kullanılması gerektiğini gösteren olabilir. Sağlanan kimlik bilgilerini kullanmak için bu parametrede bu kimlik bilgilerini içeren bir SEC_WINNT_AUTH_IDENTITY yapısı geçirin. RPC çalışma süresi , RpcBindingSetAuthInfo'da sağlanan her şeyi geçirir.
Schannel SSP kullanırken, kullanılacak protokolü ve çeşitli özelleştirilebilir kanal özellikleri için ayarları gösteren bir SCH_CREDENTIALS yapısı belirtin.
pGetKeyFn[in, optional]
Bu parametre kullanılmaz ve olarak NULL
ayarlanmalıdır.
pvGetKeyArgument[in, optional]
Bu parametre kullanılmaz ve olarak NULL
ayarlanmalıdır.
phCredential[out]
Kimlik bilgisi tanıtıcısını almak için CredHandle yapısının işaretçisi.
ptsExpiry[out, optional]
Döndürülen kimlik bilgilerinin süresinin dolmak üzere olduğu zamanı alan bir TimeStamp yapısının işaretçisi. Bu TimeStamp yapısında döndürülen değer kısıtlanmış temsile bağlıdır. Güvenlik paketinin bu değeri yerel saatle döndürmesi gerekir.
Schannel SSP kullanılırken bu parametre isteğe bağlıdır. Kimlik doğrulaması için kullanılacak kimlik bilgisi bir sertifika olduğunda, bu parametre bu sertifika için süre sonu süresini alır. Hiçbir sertifika sağlanmadıysa, maksimum zaman değeri döndürülür.
Dönüş değeri
İşlev başarılı olursa işlevi döndürür SEC_E_OK
.
İşlev başarısız olursa aşağıdaki hata kodlarından birini döndürür.
İade kodu | Açıklama |
---|---|
SEC_E_INSUFFICIENT_MEMORY | İstenen eylemi tamamlamak için yeterli bellek yok. |
SEC_E_INTERNAL_ERROR | SSPI hata koduyla eşleşmeyen bir hata oluştu. |
SEC_E_NO_CREDENTIALS | Kısıtlanmış temsilde kullanılabilir kimlik bilgisi yok. |
SEC_E_NOT_OWNER | İşlevi çağıranın gerekli kimlik bilgileri yok. |
SEC_E_SECPKG_NOT_FOUND | İstenen güvenlik paketi yok. |
SEC_E_UNKNOWN_CREDENTIALS | Pakete sağlanan kimlik bilgileri tanınmadı. |
Açıklamalar
AcquireCredentialsHandle (Schannel) işlevi, belirli bir kısıtlanmış temsilci tarafından kullanıldığı gibi bir sorumlunun kimlik bilgilerine kullanıcı veya istemci gibi bir tanıtıcı döndürür. Bu, önceden var olan kimlik bilgilerinin tanıtıcısı olabilir veya işlev yeni bir kimlik bilgileri kümesi oluşturup döndürebilir. Bu tanıtıcı, AcceptSecurityContext (Schannel) ve InitializeSecurityContext (Schannel) işlevlerine yapılan sonraki çağrılarda kullanılabilir.
Genel olarak , AcquireCredentialsHandle (Schannel), bir işlemin aynı bilgisayarda oturum açmış diğer kullanıcıların kimlik bilgilerine tanıtıcı almasına izin vermez. Ancak , SE_TCB_NAMEayrıcalığına sahip bir arayan, söz konusu oturumun kimlik bilgilerine bir tanıtıcı almak için mevcut oturum açma belirtecinin oturum açma tanımlayıcısını (LUID) belirtme seçeneğine sahiptir. Bu genellikle, oturum açmış bir kullanıcı adına işlem yapması gereken çekirdek modu modülleri tarafından kullanılır.
Bir paket, RPC çalışma zamanı aktarımı tarafından sağlanan pGetKeyFn içindeki işlevi çağırabilir. Aktarım, kimlik bilgilerini almak için geri çağırmayı desteklemiyorsa, bu parametre olmalıdır NULL
.
Çekirdek modu arayanları için aşağıdaki farklara dikkat edilmelidir:
- İki dize parametresi Unicode dizeleri olmalıdır.
- Arabellek değerleri havuzdan değil işlem sanal belleğinde ayrılmalıdır.
Döndürülen kimlik bilgilerini kullanmayı bitirdiğinizde, FreeCredentialsHandle işlevini çağırarak kimlik bilgileri tarafından kullanılan belleği boşaltın.
Gereksinimler
Gereksinim | Değer |
---|---|
Desteklenen en düşük düzeydeki istemci | Windows XP [yalnızca masaüstü uygulamaları] |
Desteklenen en düşük sunucu | Windows Server 2003 [yalnızca masaüstü uygulamaları] |
Başlık | Sspi.h (Security.h dahil) |
Kütüphane | Secur32.lib |
DLL | Secur32.dll |
Unicode ve ANSI adları | AcquireCredentialsHandleW (Unicode) ve AcquireCredentialsHandleA (ANSI) |
Ayrıca bkz.
AcceptSecurityContext (Schannel)