示例#1
0
        private async void RBT_Student_CheckedChangedAsync(object sender, EventArgs e)
        {
            if (((RadioButton)sender).Checked)
            {
                // 保存配置
                Config.NetType = 0;
                // 判断切换是否合法
                PNL_Student.Visible = RBT_Student.Checked;
                PNL_Teacher.Visible = RBT_Teacher.Checked;
                if (Config.StudentNet.SettingCertify.Enable == false ||
                    string.IsNullOrEmpty(Config.StudentNet.SettingCertify.UserId) ||
                    string.IsNullOrEmpty(Config.StudentNet.SettingCertify.Password))
                {
                    var f = new FrmCertify();
                    if (f.ShowDialog() != DialogResult.Yes)
                    {
                        RBT_Teacher.Checked = true;
                        Config.NetType      = 1;
                    }
                }
                else
                {
                    await SrLinkService.RegisterSchoolNetAsync(Config.StudentNet.SettingCertify.UserId,
                                                               Config.StudentNet.SettingCertify.Password, 1);
                }

                ConfigService.SaveConfig(ref Config);
                ReFreshUi();
            }
        }
示例#2
0
文件: FrmMain.cs 项目: jankiny/SrLink
 private void TryLinkTeacher()
 {
     if (VpnService.Worked())
     {
         if (MessageBox.Show("警告:如果切换网络类型,会断开当前网络。是否切换?", "当前网络正在使用", MessageBoxButtons.YesNo,
                             MessageBoxIcon.Warning) != DialogResult.Yes)
         {
             return;
         }
         VpnService.Abort();
     }
     if (SrLinkService.RegisterSchoolNet(Config.TeacherNet.SettingCertify.UserId,
                                         Config.TeacherNet.SettingCertify.Password))
     {
         Config.NetType = 1;
         ShowTip(ToolTipIcon.Info, "切换到教师网", $"{Config.TeacherNet.SettingCertify.UserId}登录成功",
                 false);
     }
     else
     {
         Config.NetType = 0;
         ShowTip(ToolTipIcon.Error, "切换到教师网", "登录失败:用户名/密码错误。请进入配置页面手动尝试。", false);
     }
     ConfigService.SaveConfig(ref Config);
 }
示例#3
0
        private void BTN_Teacher_Certify_Click(object sender, EventArgs e)
        {
            var id  = UInput_Teacher_CertifyId.Content;
            var pwd = UInput_Teacher_CertifyPassword.Content;

            if (SrLinkService.RegisterSchoolNet(id, StringHelper.Base64Encode(pwd)))
            {
                MessageBox.Show(id + "登录成功", "登录成功", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                ConfigService.SaveConfig(ref Config);
            }
            else
            {
                MessageBox.Show("用户名/密码错误", "登录失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#4
0
        private void BTN_Certify_Click(object sender, EventArgs e)
        {
            var id  = UInput_CertifyId.Content;
            var pwd = UInput_CertifyPassword.Content;

            if (SrLinkService.RegisterSchoolNet(id, StringHelper.Base64Encode(pwd)))
            {
                MessageBox.Show(id + "登录成功", "登录成功", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                Config.StudentNet.SettingCertify.Enable   = true;
                Config.StudentNet.SettingCertify.UserId   = UInput_CertifyId.Content;
                Config.StudentNet.SettingCertify.Password = StringHelper.Base64Encode(UInput_CertifyPassword.Content);
                ConfigService.SaveConfig(ref Config);
                DialogResult = DialogResult.Yes;
                Close();
            }
            else
            {
                MessageBox.Show("用户名/密码错误", "登录失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#5
0
文件: FrmMain.cs 项目: jankiny/SrLink
        public FrmMain()
        {
            InitializeComponent();
            Config = new ConfigModel();
            ConfigService.LoadConfig(ref Config);
            if (ConfigService.IsEmpty(ref Config))
            {
                ShowTip(ToolTipIcon.Info, "欢迎使用SrLink", "检测到当前配置为空,请先到配置页面设置连接信息。", false);
                ConfigService.InitialConfig(ref Config);
            }

            _frmDebug = new FrmDebug();

            //TMR_SrLink.Enabled = Config.AutoLink;

            Application.ApplicationExit += (sender, args) =>
            {
                SrLinkService.DisconnectVpn();
                _frmDebug.Dispose();
                ConfigService.SaveConfig(ref Config);
            };
        }
示例#6
0
文件: FrmMain.cs 项目: jankiny/SrLink
 private void 断开连接ToolStripMenuItem_ClickAsync(object sender, EventArgs e)
 {
     _frmDebug.WriteToBoard("(用户操作)执行断开连接");
     try
     {
         if (Config.NetType == 1)
         {
             ShowTip(ToolTipIcon.Warning, "无效操作", "教师网暂时无法断开连接");
         }
         else
         {
             SrLinkService.DisconnectVpn();
             ShowTip(ToolTipIcon.Warning, "断开网络", "网络已断开");
             //if (await SrLinkService.TestInternetAsync())
             //    SrLinkService.DisconnectVpn();
             //else
             //    ShowTip(ToolTipIcon.Warning, "无效操作", "网络还未连接");
         }
     }
     catch (Exception err)
     {
         LoggerService.SaveLog("断开连接ToolStripMenuItem_Click", err);
     }
 }
示例#7
0
文件: FrmMain.cs 项目: jankiny/SrLink
        private async void TryLinkStudent(bool force = false)
        {
            //if (Global.Linked)
            //{
            //    _frmDebug.WriteToBoard($"Linked = {Global.Linked} 检测到网络已连接,停止计时器事件,结束");
            //    TMR_SrLink.Enabled = false;
            //    return;
            //}

            //_frmDebug.WriteToBoard($"Linked = {Global.Linked} 网络未连接 - 可连接");
            //if (Global.Running)
            //{
            //    _frmDebug.WriteToBoard($"Running = {Global.Running} 检测到线程忙,结束");
            //    return;
            //}
            // TODO: 可能会出现问题,Vpn虽然忙但并不是在连接,可能导致永远不会进入连接
            if (VpnService.Worked())
            {
                _frmDebug.WriteToBoard($"检测到线程忙,结束");
                return;
            }

            //_frmDebug.WriteToBoard($"Running = {Global.Running} 线程空闲 - 可连接");

            if (!ConfigService.EnableTryLink(ref Config) && !force)
            {
                // 这句提示不应该出现
                _frmDebug.WriteToBoard($"EnableTryLink = {ConfigService.EnableTryLink(ref Config)} 未启用自动连接,结束");
                return;
            }


            _frmDebug.WriteToBoard(
                $"EnableTryLink = {ConfigService.EnableTryLink(ref Config)}, force = {force} 开始执行连接");

            //Global.Running = true;
            ShowTip(ToolTipIcon.None, "L2TP连接中", "请耐心等待");

            if (SrLinkService.SettingEnable(ref Config, "Certify"))
            {
                var res = await SrLinkService.RegisterSchoolNetAsync(Config.StudentNet.SettingCertify.UserId,
                                                                     Config.StudentNet.SettingCertify.Password);

                if (res)
                {
                    _frmDebug.WriteToBoard("认证成功");
                }
                else
                {
                    ShowTip(ToolTipIcon.Error, "认证失败", "内网认证失败");
                }
            }

            if (SrLinkService.SettingEnable(ref Config, "Link"))
            {
                var res = SrLinkService.LinkVpnAsync(Config.StudentNet.SettingLink.ServerIp,
                                                     Config.StudentNet.SettingLink.UserId, Config.StudentNet.SettingLink.Password);
                if (res)
                {
                    // 调整TMR至第二天的设定时间启动
                    var nextTime = DateTime.Now.AddDays(1).Date + Config.StudentNet.StartTime.TimeOfDay;
                    TMR_SrLink.Interval = (int)nextTime.Subtract(DateTime.Now).TotalMilliseconds;
                    ShowTip(ToolTipIcon.Info, "连接成功", $"{StringHelper.GetAppString("AdapterName")}已连接");
                }
                else
                {
                    Config.StudentNet.AutoLink = false;
                    ShowTip(ToolTipIcon.Info, "连接失败", "已取消自动连接。请检查配置信息,并使用手动连接测试配置,连接成功后再重新开启自动连接。");
                }
            }

            if (SrLinkService.SettingEnable(ref Config, "Mail"))
            {
                var res = await SrLinkService.SendIpAsync(Config.StudentNet.SettingMail.Address);

                if (res)
                {
                    _frmDebug.WriteToBoard("Ip发送成功");
                }
                else
                {
                    ShowTip(ToolTipIcon.Error, "Ip发送失败", "响应超时");
                }
            }

            // Global.Running = false;
            _frmDebug.WriteToBoard("连接结束");
        }