Public Class PageLoginAuth Private IsFirstLoad As Boolean = True ''' ''' 刷新页面显示的所有信息。 ''' Public Sub Reload(KeepInput As Boolean) '记住密码 CheckRemember.Checked = Setup.Get("LoginRemember") If KeepInput AndAlso Not IsFirstLoad Then '避免第一次就以 KeepInput 的方式加载,导致文本框里没东西 '保留输入,只刷新下拉框列表 Dim Input As String = ComboName.Text ComboName.ItemsSource = If(Setup.Get("LoginAuthEmail") = "", Nothing, Setup.Get("LoginAuthEmail").ToString.Split("¨")) ComboName.Text = Input Else '不保留输入,刷新列表后自动选择第一项 If Setup.Get("LoginAuthEmail") = "" Then ComboName.ItemsSource = Nothing Else ComboName.ItemsSource = Setup.Get("LoginAuthEmail").ToString.Split("¨") ComboName.Text = Setup.Get("LoginAuthEmail").ToString.BeforeFirst("¨") If Setup.Get("LoginRemember") Then TextPass.Password = Setup.Get("LoginAuthPass").ToString.BeforeFirst("¨").Trim End If End If IsFirstLoad = False End Sub ''' ''' 获取当前页面的登录信息。 ''' Public Shared Function GetLoginData() As McLoginServer Dim Server As String = If(IsNothing(McInstanceSelected), Setup.Get("CacheAuthServerServer"), Setup.Get("VersionServerAuthServer", Instance:=McInstanceSelected)) & "/authserver" If FrmLoginAuth Is Nothing Then Return New McLoginServer(McLoginType.Auth) With {.Token = "Auth", .BaseUrl = Server, .UserName = "", .Password = "", .Description = "Authlib-Injector", .Type = McLoginType.Auth} Else Return New McLoginServer(McLoginType.Auth) With {.Token = "Auth", .BaseUrl = Server, .UserName = FrmLoginAuth.ComboName.Text.Replace("¨", "").Trim, .Password = FrmLoginAuth.TextPass.Password.Replace("¨", "").Trim, .Description = "Authlib-Injector", .Type = McLoginType.Auth} End If End Function ''' ''' 当前页面的登录信息是否有效。 ''' Public Shared Function IsVaild(LoginData As McLoginServer) As String If LoginData.UserName = "" Then Return "账号不能为空!" If LoginData.Password = "" Then Return "密码不能为空!" Return "" End Function Public Function IsVaild() As String Return IsVaild(GetLoginData()) End Function '保存输入信息 Private Sub ComboName_TextChanged(sender As Object, e As TextChangedEventArgs) Handles ComboName.TextChanged If sender.Text = "" Then TextPass.Password = "" If AniControlEnabled = 0 Then Setup.Set("CacheAuthAccess", "") '迫使其不进行 Validate End Sub Private Sub TextPass_PasswordChanged(sender As Object, e As RoutedEventArgs) Handles TextPass.PasswordChanged If AniControlEnabled = 0 Then Setup.Set("CacheAuthAccess", "") End Sub Private Sub ComboName_SelectionChanged(sender As MyComboBox, e As SelectionChangedEventArgs) Handles ComboName.SelectionChanged If sender.SelectedIndex = -1 OrElse Not Setup.Get("LoginRemember") Then TextPass.Password = "" Else TextPass.Password = Setup.Get("LoginAuthPass").ToString.Split("¨")(sender.SelectedIndex).Trim End If End Sub Private Sub CheckBoxChange(sender As MyCheckBox, e As Object) Handles CheckRemember.Change If AniControlEnabled = 0 Then Setup.Set(sender.Tag, sender.Checked) End Sub '链接处理 Private Sub ComboName_TextChanged() Handles ComboName.TextChanged BtnLink.Content = If(ComboName.Text = "", "注册账号", "找回密码") End Sub Private Sub Btn_Click(sender As Object, e As EventArgs) Handles BtnLink.Click If BtnLink.Content = "注册账号" Then OpenWebsite(If(McInstanceSelected IsNot Nothing, Setup.Get("VersionServerAuthRegister", Instance:=McInstanceSelected), Setup.Get("CacheAuthServerRegister"))) Else Dim Website As String = If(McInstanceSelected IsNot Nothing, Setup.Get("VersionServerAuthRegister", Instance:=McInstanceSelected), Setup.Get("CacheAuthServerRegister")) OpenWebsite(Website.Replace("/auth/register", "/auth/forgot")) End If End Sub '切换注册按钮可见性 Private Sub ReloadRegisterButton() Handles Me.Loaded Dim Address As String = If(McInstanceSelected IsNot Nothing, Setup.Get("VersionServerAuthRegister", Instance:=McInstanceSelected), Setup.Get("CacheAuthServerRegister")) BtnLink.Visibility = If(String.IsNullOrEmpty(New ValidateHttp().Validate(Address)), Visibility.Visible, Visibility.Collapsed) End Sub End Class