231 lines
7.9 KiB
C#
231 lines
7.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using MySql.Data.MySqlClient;
|
|
using System.Security.Cryptography;
|
|
|
|
namespace PokerStarsBotClientv2
|
|
{
|
|
public partial class LoginForm : Form
|
|
{
|
|
// Constructor
|
|
public LoginForm()
|
|
{
|
|
InitializeComponent();
|
|
LoadCreedentials();
|
|
this.Text += " v" + Globals.LocalVersion;
|
|
HelperMethods.GetConfigFromDB();
|
|
}
|
|
|
|
// Methods
|
|
protected override void OnLoad(EventArgs e)
|
|
{
|
|
base.OnLoad(e);
|
|
CompareVersions();
|
|
}
|
|
|
|
private void CompareVersions()
|
|
{
|
|
// Version comparing
|
|
var result = Globals.RecentVersion.CompareTo(Globals.LocalVersion);
|
|
if (result > 0)
|
|
{
|
|
DialogResult dialogResult = MessageBox.Show("There is a newer client version available:\n\nYour version: " + Globals.LocalVersion + "\nNewest version: " + Globals.RecentVersion + "\n\nPlease update asap.\nOpen website now?", "Update PkrStarsBot", MessageBoxButtons.YesNo);
|
|
if (dialogResult == DialogResult.Yes)
|
|
{
|
|
System.Diagnostics.Process.Start(Globals.PkrStarsBotURL);
|
|
}
|
|
Application.Exit();
|
|
}
|
|
}
|
|
private void checkBoxRememberMe_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
// Delete credentials is checkbox is not checked
|
|
if (checkBoxRememberMe.Checked == false)
|
|
{
|
|
Properties.Settings.Default.UserName = string.Empty;
|
|
Properties.Settings.Default.Password = string.Empty;
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
}
|
|
private void LoadCreedentials()
|
|
{
|
|
if (Properties.Settings.Default.UserName != string.Empty && Properties.Settings.Default.Password != string.Empty)
|
|
{
|
|
textBoxUser.Text = Properties.Settings.Default.UserName;
|
|
textBoxPassword.Text = Properties.Settings.Default.Password;
|
|
checkBoxRememberMe.Checked = true;
|
|
EnableDisableLoginButton();
|
|
}
|
|
}
|
|
public void EnableDisableLoginButton()
|
|
{
|
|
if (string.IsNullOrWhiteSpace(textBoxUser.Text) || string.IsNullOrWhiteSpace(textBoxPassword.Text))
|
|
{
|
|
btnLogin.Enabled = false;
|
|
}
|
|
else
|
|
{
|
|
btnLogin.Enabled = true;
|
|
}
|
|
}
|
|
public string CalculateMD5Hash(string input)
|
|
{
|
|
// Calculate MD5 hash from input
|
|
MD5 md5 = System.Security.Cryptography.MD5.Create();
|
|
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
|
|
byte[] hash = md5.ComputeHash(inputBytes);
|
|
|
|
// Convert byte array to hex string
|
|
StringBuilder sb = new StringBuilder();
|
|
for (int i = 0; i < hash.Length; i++)
|
|
{
|
|
|
|
sb.Append(hash[i].ToString("X2"));
|
|
}
|
|
|
|
return sb.ToString();
|
|
}
|
|
|
|
private void btnLogin_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
// Connect to DB
|
|
var dbCon = DBConnection.Instance();
|
|
if (dbCon.IsConnect())
|
|
{
|
|
// Username & password
|
|
string Username = textBoxUser.Text;
|
|
string Password = textBoxPassword.Text;
|
|
string PasswordMD5 = CalculateMD5Hash(Password);
|
|
string Count1 = "";
|
|
|
|
// Query
|
|
string query = "SELECT count(1) FROM `reg_users` WHERE `EMail` = @UserName AND `Password` = @PassWord;";
|
|
|
|
// SQL: Check username & password
|
|
var cmd = new MySqlCommand(query, dbCon.Connection);
|
|
cmd.Parameters.AddWithValue("@UserName", Username);
|
|
cmd.Parameters.AddWithValue("@PassWord", PasswordMD5);
|
|
var reader = cmd.ExecuteReader();
|
|
while (reader.Read())
|
|
{
|
|
Count1 = reader.GetString(0);
|
|
}
|
|
reader.Close();
|
|
|
|
// Login successful
|
|
if (Count1 == "1")
|
|
{
|
|
// Save credentials if checked
|
|
if (checkBoxRememberMe.Checked == true)
|
|
{
|
|
Properties.Settings.Default.UserName = Username;
|
|
Properties.Settings.Default.Password = Password;
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
else
|
|
{
|
|
Properties.Settings.Default.UserName = Username;
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
|
|
// Hide Login, show up main
|
|
this.Hide();
|
|
MainForm MainForm = new MainForm();
|
|
MainForm.Show();
|
|
|
|
}
|
|
else if (Count1 == "0") // Login unsuccessful
|
|
{
|
|
MessageBox.Show("LOGIN FAILED", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
|
|
// Close DB connection
|
|
dbCon.Close();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
|
|
private void textBoxUser_KeyUp(object sender, KeyEventArgs e)
|
|
{
|
|
EnableDisableLoginButton();
|
|
}
|
|
|
|
private void textBoxPassword_KeyUp(object sender, KeyEventArgs e)
|
|
{
|
|
EnableDisableLoginButton();
|
|
}
|
|
|
|
private void LoginForm_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
Application.Exit();
|
|
}
|
|
|
|
private void z(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
/*namespace Data
|
|
{
|
|
public class DBConnection
|
|
{
|
|
// Fields
|
|
private string mysqlServer = "zinomedia.de";
|
|
private string mysqlUser = "pkrstarsbot";
|
|
private string mysqlPassword = "ichpkrstarsbot#1337";
|
|
private string mysqlDatabase = "pkrstarsbot";
|
|
|
|
private MySqlConnection connection = null;
|
|
public MySqlConnection Connection
|
|
{
|
|
get { return connection; }
|
|
}
|
|
|
|
private static DBConnection _instance = null;
|
|
public static DBConnection Instance()
|
|
{
|
|
if (_instance == null)
|
|
_instance = new DBConnection();
|
|
return _instance;
|
|
}
|
|
|
|
public bool IsConnect()
|
|
{
|
|
bool result = true;
|
|
if (Connection == null)
|
|
{
|
|
if ((mysqlDatabase ?? mysqlPassword ?? mysqlServer ?? mysqlUser) == null)
|
|
{
|
|
return false;
|
|
}
|
|
string connstring = string.Format(@"server={0};user id={1};persistsecurityinfo=True;database={2};password={3}", mysqlServer, mysqlUser, mysqlDatabase, mysqlPassword);
|
|
connection = new MySqlConnection(connstring);
|
|
connection.Open();
|
|
result = true;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public void Close()
|
|
{
|
|
connection.Close();
|
|
_instance = null;
|
|
}
|
|
}
|
|
}*/ |