Bagikan melalui


Metode ICredentialProviderCredential2::GetUserSid (credentialprovider.h)

Mengambil pengidentifikasi keamanan (SID) pengguna yang terkait dengan kredensial ini.

Sintaks

HRESULT GetUserSid(
  [out] LPWSTR *sid
);

Parameter

[out] sid

Alamat pointer ke buffer yang, ketika metode ini berhasil kembali, menerima SID pengguna.

Nilai kembali

Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

UI Masuk akan menggunakan SID yang dikembalikan dari metode ini untuk mengaitkan petak kredensial dengan petak peta pengguna. Untuk mengaitkan kredensial dengan petak peta pengguna "Pengguna lain" di UI Masuk, metode ini harus mengembalikan S_FALSE dan SID null. Petak peta "Pengguna lain" biasanya hanya valid ketika PC bergabung ke domain.

Contoh

Contoh berikut menunjukkan contoh implementasi metode ini. Ini mengambil SID pengguna yang sesuai dengan kredensial.

Variabel _pszUserSid yang digunakan di sini diasumsikan sebagai anggota privat kelas, yang ditentukan di luar metode ini dan diatur ke SID pengguna.

Sumber daya yang ditujukkan oleh ppszSid akan dikosongkan oleh UI masuk, sehingga tidak perlu dikosongkan di sini.

Jika SID pengguna tidak tersedia, metode mengembalikan S_FALSE dengan SID null, yang mengaitkan kredensial dengan petak pengguna anonim. Ini akan menyebabkan petak peta muncul ketika petak peta "Pengguna lain" dipilih pada PC yang bergabung dengan domain.


// Gets the SID of the user corresponding to the credential. 
HRESULT CSampleCredential::GetUserSid(__deref_out PWSTR *ppszSid) 
{
    *ppszSid = nullptr;
    HRESULT hr = E_UNEXPECTED;

    // _pszUserSid is a private member of CSampleCredential
    if (_pszUserSid != nullptr)
    {
        // ppszSid will be freed by Logon UI
        hr = SHStrDupW(_pszUserSid, ppszSid);
    }
    // Return S_FALSE with a null SID in ppszSid for the
    // credential to be associated with an anonymous user tile.
    else if (_fIsOtherUserTile)
    {
        hr = S_FALSE;
    }

    return hr;
}                     
                    

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 [khusus aplikasi desktop]
Server minimum yang didukung Windows Server 2012 [hanya aplikasi desktop]
Target Platform Windows
Header credentialprovider.h

Lihat juga

ICredentialProviderCredential2

ICredentialProviderUser::GetSid