用c#编写一个VPN链接程序,在测试时显示已连接,但却没有网络访问是怎么回事?

    namespace VPNClient
    {
    class NewEntry 
    {
        private String entryName = null;
        private String entryAddress = null;
        private String entryUsername = null;
        private String entrySecret = null;
        private Boolean rememberSecret = false;
        private RasEntry newRas;
        private RasDevice rDevice;


        public NewEntry()
        { 
        
        }

        public NewEntry(String ConnectionName, String address)
        {
            setEntryName(ConnectionName);
            setEntryAddress(address);
            NewRasEntry();
        }

        public NewEntry(String ConnectionName, String address, String username, String secret, Boolean remember)
        {
            setEntryName(ConnectionName);
            setEntryAddress(address);
            setUserName(username);
            setSecret(secret);
            NewRasEntry();
            

        }

        private void setEntryName(String name)
        {
            this.entryName = name;
        }

        private void setEntryAddress(String address)
        {
            this.entryAddress = address;
        }

        private void setUserName(String username)
        {
            this.entryUsername = username;
        }

        private void setSecret(String secret)
        {
            this.entrySecret = secret;
        }

        public String getEntryName()
        {
            return this.entryName;
        }

        public String getEntryAddress()
        {
            return this.entryAddress;
        }

        public void NewRasEntry()
        {
            ReadOnlyCollection<RasDevice> devices = RasDevice.GetDevices();

            foreach (RasDevice modem in devices)
            {
                if (modem.Name.ToLower().Contains("(pptp)"))
                {
                    this.rDevice = modem;
                }
            }

            newRas = RasEntry.CreateVpnEntry(entryName, entryAddress, RasVpnStrategy.PptpOnly, rDevice, false);

            newRas.Options.RemoteDefaultGateway = false;
            newRas.Options.IPv6RemoteDefaultGateway = false;
            newRas.NetworkProtocols.IPv6 = false;
           // newRas.IdleDisconnectSeconds = 10;
            newRas.Options.RequireMSChap2 = true;

            newRas.Options.Internet = false;

            newRas.Options.UseLogOnCredentials = true;

            NetworkCredential cred = new NetworkCredential();
            cred.UserName = this.entryUsername;
            cred.Password = this.entrySecret;
           

            Data.Pbk.Entries.Add(newRas);
            Data.Pbk.Entries[Data.Pbk.Entries.Last().Name].UpdateCredentials(cred);
        }
    }
}

以上是链接部分的代码

阅读 4.8k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进