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(); } }
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); }
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); } }
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); } }
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); }; }
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); } }
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("连接结束"); }