using System; using System.Collections.Generic; using System.ComponentModel; using System.Windows.Forms; using System.Data.SqlClient; using System.Threading; using Newtonsoft.Json.Linq; using Newtonsoft.Json; using laserPTZ.model; using System.Drawing; using System.Security.Cryptography; using System.Text; using Org.BouncyCastle.Asn1.Pkcs; using Org.BouncyCastle.Asn1.X509; using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Math; using Org.BouncyCastle.Pkcs; using Org.BouncyCastle.Security; using Org.BouncyCastle.X509; namespace laserPTZ { public partial class FormLogin : Form { public static User user = new User(); public static FormLogin formLogin; public static string token = ""; public FormLogin() { InitializeComponent(); formLogin = this; // 设置双缓冲 SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.OptimizedDoubleBuffer, true); //string data = "deletePermission:{\"ids\":[1,2,3,4]}"; //data = data.Replace("deletePermission:", ""); //data = data.Insert(7, "\""); //data = data.Insert(data.Length - 1, "\""); //JObject json = (JObject)JsonConvert.DeserializeObject(data);//或者JObject jo = JObject.Parse(jsonText); //string[] ids = json["ids"].ToString().Replace("[", "").Replace("]", "").Split(','); //MessageBox.Show("mmmm"); } private void FormLogin_Load(object sender, EventArgs e) { btn_login.Focus(); } // 登录 private void btn_login_Click_1(object sender, EventArgs e) { string result = Http.http("http://" + ConfigHelper.GetAppConfig("server").Trim() + "/config/baseConfig", "GET", null); if (result == "") { MessageBox.Show("服务器异常,登录失败"); return; } JObject json = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText); if (json["success"].ToString() == "False") { MessageBox.Show("登录失败,未授权!"); return; } if (json["data"].ToString() == "[]") { MessageBox.Show("服务器异常,登录失败"); return; } string publicKey = ""; JObject jar = (JObject)JsonConvert.DeserializeObject(json["data"].ToString()); publicKey =jar["publicKey"].ToString(); RsaKeyParameters publicKeyParam = (RsaKeyParameters)PublicKeyFactory.CreateKey(Convert.FromBase64String(publicKey)); publicKey = string.Format("<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Exponent></RSAKeyValue>", Convert.ToBase64String(publicKeyParam.Modulus.ToByteArrayUnsigned()), Convert.ToBase64String(publicKeyParam.Exponent.ToByteArrayUnsigned())); //密码加密 RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); byte[] cipherbytes; rsa.FromXmlString(publicKey); cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(txt_password.Text.Trim()), false); string pwd = Convert.ToBase64String(cipherbytes); pwd = System.Web.HttpUtility.UrlEncode(pwd, System.Text.Encoding.UTF8); //登录 string query = "?username=" + txt_user.Text.Trim() + "&" + "password=" + pwd; result = Http.http("http://" + ConfigHelper.GetAppConfig("server").Trim() + "/user/login" + query, "POST", null); if (result == "") { MessageBox.Show("服务器异常,登录失败"); return; } json = ((JObject)JsonConvert.DeserializeObject(result)); if (json["code"].ToString() == "200") { JObject data = ((JObject)JsonConvert.DeserializeObject(json["data"].ToString())); token = data["token"].ToString(); DialogResult = DialogResult.OK; Close(); //FormMain FormMain = new FormMain(); //this.Visible = false; //FormMain.Show(); } else { MessageBox.Show("用户名或密码错误,登录失败"); return; } } private void label1_Click(object sender, EventArgs e) { Close(); } private void label1_MouseEnter(object sender, EventArgs e) { label1.BackColor = Color.Plum; } private void label1_MouseLeave(object sender, EventArgs e) { label1.BackColor = Color.FromArgb(216, 206, 206); } } }