Last Updated 2005/09/14
API

パスワードの一致


指定した文字列が Windows のパスワードと一致しているかを知るには WNetVerifyPassword()
を使用する.
(パスワードの文字列を得ることは出来ない)
しかし,Windows95 限定である.


DWORD WNetVerifyPassword( LPCTSTR lpszPassword, BOOL FAR * pfMatch );



使用例

BOOL IsMatchedPassword(LPSTR lpszPasswd)
{
    char szSysDir[128];
    GetSystemDirectory(szSysDir, 127);
    strcat(szSysDir, "\\MPR.DLL");
    HMODULE hInst = LoadLibrary(szSysDir);
    DWORD (WINAPI* pfnWNetVerifyPassword)(LPCSTR, BOOL*);
    if( !(pfnWNetVerifyPassword = (DWORD(WINAPI*)(LPCSTR, BOOL*))GetProcAddress(hInst, "WNetVerifyPasswordA")) );
        return FALSE;
    
    BOOL bIsMatched;
    if( (*pfnWNetVerifyPassword)(lpszPasswd, &bIsMatched) != WN_SUCCESS) {
        DWORD dwErr = GetLastError();
        TRACE("Procedure call failure. code = %x", dwErr);
        return FALSE;
    }

    if(!bIsMatched){
        // パスワード不一致
        return FALSE;
    } else {
        return TRUE;
    }
}
2005/07/07

参照
独自のパスワード認証


API