RASDIAL API не подключается на Windows Vista и Windows 7 в сборках выпуска - PullRequest
0 голосов
/ 28 мая 2011

Я пытаюсь подключиться с помощью RASDIAL API в Windows Vista и Windows 7. Я могу легко сделать это в системах Windows XP.

Я не могу подключиться к Windows Vista и Windows 7 только в сборке выпуска. Я могу сделать это с помощью отладочных сборок. Есть идеи, почему это происходит? Я записал код, который я использую для этого.

Я использую API Aventail VPN 10.x для установки пользовательских данных аутентификации.

            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;
            }

Большую часть времени я получаю внутреннюю ошибку аутентификации. Пожалуйста, не могли бы вы указать мне на вопрос ???

1 Ответ

0 голосов
/ 01 июня 2011

Это было потому, что я не инициализировал все параметры в rasdialparams.Также нам нужно установить маску param в ngauthdata на соответствующие значения, прежде чем мы ее используем.

...