Fungsi WinBioLogonIdentifiedUser (winbio.h)

Fungsi WinBioLogonIdentifiedUser menyebabkan peralihan pengguna cepat ke akun yang terkait dengan operasi identifikasi terakhir yang berhasil dilakukan oleh sesi biometrik.

Sintaks

HRESULT WinBioLogonIdentifiedUser(
  [in] WINBIO_SESSION_HANDLE SessionHandle
);

Parameter

[in] SessionHandle

Nilai WINBIO_SESSION_HANDLE yang mengidentifikasi sesi biometrik yang baru-baru ini melakukan operasi identifikasi yang berhasil. Buka handel sesi dengan memanggil WinBioOpenSession.

Mengembalikan nilai

Jika fungsi berhasil, fungsi akan mengembalikan S_OK. Jika fungsi gagal, fungsi mengembalikan nilai HRESULT yang menunjukkan kesalahan. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut. Untuk daftar kode kesalahan umum, lihat Nilai HRESULT Umum.

Menampilkan kode Deskripsi
E_ACCESSDENIED
Pemanggil tidak memiliki izin untuk mengalihkan pengguna atau sesi biometrik sudah kedaluarsa.
E_HANDLE
Handel sesi tidak valid.
S_FALSE
Pengguna yang diidentifikasi oleh parameter SessionHandle sama dengan pengguna saat ini.
SEC_E_LOGON_DENIED
Pengguna tidak dapat masuk.
WINBIO_E_CRED_PROV_DISABLED
Kebijakan administratif saat ini melarang penggunaan penyedia kredensial.
WINBIO_E_FAST_USER_SWITCH_DISABLED
Pengalihan pengguna cepat tidak diaktifkan.
WINBIO_E_SAS_ENABLED
Peralihan pengguna cepat tidak dapat dilakukan karena log masuk aman (CTRL+ALT+DELETE) saat ini diaktifkan.

Keterangan

Fungsi WinBioLogonIdentifiedUser biasanya dipanggil oleh aplikasi yang mendukung peralihan pengguna cepat ketika mereka mengidentifikasi pengguna selain yang saat ini masuk.

Upaya peralihan pengguna yang cepat dapat meninggalkan peristiwa masuk di log keamanan, tetapi identitas tidak disimpan secara otomatis ketika manajer kredensial berakhir.

Sesi biometrik yang ditentukan oleh parameter SessionHandle mengontrol akun target untuk peristiwa peralihan pengguna cepat. Jika handel tersebut telah digunakan baru-baru ini untuk melakukan operasi identifikasi, identitas yang dihasilkan akan masuk setelah pengalihan pengguna cepat.

Untuk alasan keamanan, Windows Biometric Framework mengharuskan operasi identifikasi dan panggilan ke WinBioLogonIdentifiedUser terjadi dalam waktu singkat. Setelah periode itu, identifikasi dianggap kedaluarsa dan panggilan ke WinBioLogonIdentifiedUser akan gagal. Interval batas waktu default adalah lima detik, tetapi administrator dapat membuatnya sebesar 60 detik.

Memanggil fungsi ini ketika pengguna target sama dengan pengguna saat ini mengembalikan S_FALSE dan upaya sakelar pengguna cepat diabaikan.

Contoh

Fungsi berikut memanggil WinBioLogonIdentifiedUser untuk masuk ke pengguna yang diidentifikasi sebelumnya. Agar fungsi ini berfungsi dengan benar, log masuk aman tidak boleh diaktifkan. Tautkan ke pustaka statis Winbio.lib dan sertakan file header berikut:

  • Windows.h
  • Stdio.h
  • Conio.h
  • Winbio.h
HRESULT LogonIdentifiedUser()
{
    // Declare variables.
    HRESULT hr;
    WINBIO_SESSION_HANDLE sessionHandle = NULL;
    WINBIO_UNIT_ID  UnitId;
    WINBIO_IDENTITY Identity;
    WINBIO_BIOMETRIC_SUBTYPE SubFactor;
    WINBIO_REJECT_DETAIL RejectDetail;
    BOOL    bContinue = TRUE;

    // Connect to the system pool. 
    hr = WinBioOpenSession( 
            WINBIO_TYPE_FINGERPRINT,    // Service provider
            WINBIO_POOL_SYSTEM,         // Pool type
            WINBIO_FLAG_DEFAULT,        // Configuration and access
            NULL,                       // Array of biometric unit IDs
            0,                          // Count of biometric unit IDs
            WINBIO_DB_DEFAULT,                       // Database ID
            &sessionHandle              // [out] Session handle
            );
    if (FAILED(hr))
    {
        wprintf_s(L"\n WinBioOpenSession failed. hr = 0x%x\n", hr);
        goto e_Exit;
    }

    // Locate the biometric sensor and retrieve a WINBIO_IDENTITY object.
    // You must swipe your finger on the sensor.
    wprintf_s(L"\n Calling WinBioIdentify - Swipe finger on sensor...\n");
    while(bContinue)
    {
        hr = WinBioIdentify(
                sessionHandle,          // Session handle    
                &UnitId,                // Biometric unit ID
                &Identity,              // User SID or GUID
                &SubFactor,             // Finger sub factor
                &RejectDetail           // rejection information
                );

        switch(hr)
        {
        case S_OK:
            bContinue = FALSE;
            break;
        default:
            wprintf_s(L"\n WinBioIdentify failed. hr = 0x%x\n", hr);
            break;
        }
    }

    if (SUCCEEDED(hr))
    {
        // Switch to the target after receiving a good identity.
        hr = WinBioLogonIdentifiedUser(sessionHandle);

        switch(hr)
        {
        case S_FALSE:
            printf("\n Target is the logged on user. No action taken.\n");
            break;
        case S_OK:
            printf("\n Fast user switch initiated.\n");
            break;
        default:
            wprintf_s(L"\n WinBioLogonIdentifiedUser failed. hr = 0x%x\n", hr);
            break;
        }
    }

e_Exit:

    if (sessionHandle != NULL)
    {
        WinBioCloseSession(sessionHandle);
        sessionHandle = NULL;
    }

    wprintf_s(L"\n Press any key to exit...");
    _getch();

    return hr;
}


Persyaratan

   
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Target Platform Windows
Header winbio.h (termasuk Winbio.h)
Pustaka Winbio.lib
DLL Winbio.dll

Lihat juga

WinBioIdentify

WinBioIdentifyWithCallback