如何解决RASDIAL API未在发行版的Windows Vista和Windows 7上建立连接
| 我试图在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,L\"\\0\");
if (returnError != ERROR_SUCCESS){
return error;
}
大多数时候,我一直在收到内部身份验证错误。
请您指出我的问题吗???
解决方法
这是因为我没有初始化rasdialparams中的所有参数。另外,在使用ngauthdata之前,我们需要将其mask参数设置为其各自的值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。