ユーザーのコンピューターに VPN をセットアップするプログラムを作成しています。私のシステム管理者は、VPN のセキュリティ ページでこれらのセキュリティ設定をチェックする必要があり、他のセキュリティ設定はチェックしないように言った.
このコードを自分のベースとして使用しました。Challenge Handshake Authentication Protocol (CHAP)
私のバージョンでは、とというタイトルの 2 つのボックスのチェックを外すことができないことを除いて、ほとんどすべてが正しく設定されていますMicrosoft CHAP Version 2 (MS-CHAP v2)
。Data Encryption
ドロップダウン リストを に設定したまま、これら 2 つのチェックボックスをプログラムでオフにすることは可能Require Encryption
ですか? これが私のコードです:
void createVPN()
{
DWORD size = 0;
RasGetEntryProperties(NULL, L"", NULL, &size, NULL, NULL);
LPRASENTRY pras = (LPRASENTRY)malloc(size);
memset(pras, 0, size);
pras->dwSize = size;
pras->dwType = RASET_Vpn;
pras->dwRedialCount = 1;
pras->dwRedialPause = 60;
pras->dwfNetProtocols = RASNP_Ip;
pras->dwEncryptionType = ET_Require;
wcscpy_s(pras->szLocalPhoneNumber, L"meraki.companyname.com");
wcscpy_s(pras->szDeviceType, RASDT_Vpn);
pras->dwfOptions = RASEO_RemoteDefaultGateway;
pras->dwVpnStrategy = VS_L2tpOnly;
pras->dwfOptions2 |= RASEO2_UsePreSharedKey;
pras->dwfOptions &= ~(RASEO_RequireCHAP | RASEO_RequireMsCHAP | RASEO_RequireMsCHAP2);//This should unset the CHAP flags, but it doesn't.
RasSetEntryProperties(NULL, L"CompanyName Meraki VPN", pras, pras->dwSize, NULL, 0);
RASCREDENTIALS ras_cre_psk = { 0 };
ras_cre_psk.dwSize = sizeof(ras_cre_psk);
ras_cre_psk.dwMask = RASCM_PreSharedKey;
wcscpy_s(ras_cre_psk.szPassword, L"redacted");
RasSetCredentials(NULL, L"CompanyName Meraki VPN", &ras_cre_psk, FALSE);
free(pras);
}
に設定pras->dwEncryptionType
することで、 および他の CHAP フラグが設定解除されるのET_Require
を防ぐRASEO_RequireCHAP
ことができると考えていますが、Windows GUI では、チェックを外して にData Encryption
設定したままにすることができRequire Encryption
ます。私のシステム管理者は、CHAP チェックボックスのいずれかがオンになっている場合、またはData Encryption
が に設定されていない場合、接続が機能しないと言っていますRequire Encryption
。私に何ができる?