0

Windows Vista および Windows 7 で RASDIAL API を使用して接続しようとしています。Windows XP システムでは簡単に接続できます。

Windows Vista および Windows 7 では、リリース ビルドでのみ接続できません。デバッグビルドを介してこれを行うことができます。なぜこれが起こっているのですか?私はこれに使用しているコードを書き留めました。

Aventail VPN 10.x API を使用してカスタム認証データを設定しています。

            NGCUSTOMAUTHDATA NgAuthData;
            NgAuthData.dwSize = sizeof(NgAuthData);
            NgAuthData.dwOptions = NGCAD_OPTION_DisableGUI;
            NgAuthData.dwAuthType = 2;

            DWORD returnError=StringCbCopy( NgAuthData.szRealm,sizeof(NgAuthData.szRealm), wstringGroupName.c_str());
            if (returnError != ERROR_SUCCESS){
                return error;
            }

            DWORD nError = RasSetCustomAuthData(
                pbkPath.c_str(),
                wstringProfile.c_str(),
                (BYTE *)&NgAuthData, NgAuthData.dwSize );

            // Fill RASDIALPARAMS structure
            RASDIALPARAMS rasdialparams; 
            rasdialparams.dwSize = sizeof(RASDIALPARAMS);

            returnError |= StringCbCopy( rasdialparams.szEntryName,
                sizeof(rasdialparams.szEntryName), wstringProfile.c_str() );
            returnError |= StringCbCopy( rasdialparams.szPhoneNumber,
                sizeof(rasdialparams.szPhoneNumber), wstringUrl.c_str() );
            returnError |= StringCbCopy( rasdialparams.szUserName,
                sizeof(rasdialparams.szUserName), wstringUser.c_str());
            returnError |= StringCbCopy( rasdialparams.szPassword,
                sizeof(rasdialparams.szPassword), wstringPassword.c_str() );
            returnError |= StringCbCopy( rasdialparams.szDomain,
                sizeof(rasdialparams.szDomain), wstringGroupName.c_str());
            returnError |= StringCbCopy( rasdialparams.szDomain,
                sizeof(rasdialparams.szDomain), L"\0");

            if (returnError != ERROR_SUCCESS){
                return error;
            }

ほとんどの場合、内部認証エラーが発生し続けます。問題を教えてください。

4

1 に答える 1

0

rasdialparams のすべてのパラメーターを初期化していなかったことが原因でした。また、使用する前に、ngauthdata のマスク パラメータをそれぞれの値に設定する必要があります。

于 2011-06-01T18:59:12.813 に答える