Advertisement
Guest User

Untitled

a guest
Dec 30th, 2016
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.77 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.Data.Linq;
  11. using System.Security.Cryptography;
  12. using System.IO;
  13.  
  14. namespace QuanLyPhongMachTu
  15. {
  16. public partial class frmLogin : Form
  17. {
  18. public string UserName = null;
  19. public string UserJob = null;
  20. public string UserFullName = null;
  21. public int UserCode = -1;
  22.  
  23. static readonly string PasswordHash = "P@@Sw0rd";
  24. static readonly string SaltKey = "S@LT&KEY";
  25. static readonly string VIKey = "@1B2c3D4e5F6g7H8";
  26.  
  27. PhongMachTuDataContext db = new PhongMachTuDataContext();
  28.  
  29. void saveLog(string Tag, string Action)
  30. {
  31. // Lưu thông tin hoạt động của user vào log
  32. USER_LOG log = new USER_LOG();
  33. log.Username = UserName;
  34. log.Time = DateTime.Now;
  35. log.Tag = Tag;
  36. log.Action = Action;
  37.  
  38. // Lưu log xuống database
  39. db.USER_LOGs.InsertOnSubmit(log);
  40. db.SubmitChanges();
  41. }
  42.  
  43. public frmLogin()
  44. {
  45. InitializeComponent();
  46. }
  47. private void frmLogin_Load(object sender, EventArgs e)
  48. {
  49.  
  50. }
  51.  
  52. private void txtUserName_TextChanged(object sender, EventArgs e)
  53. {
  54. if(txtUserName.Text == "")
  55. {
  56. txtUserName.Text = "Tên đăng nhập";
  57. txtUserName.ForeColor = Color.DarkGray;
  58. }
  59. else if (txtUserName.Text == ("Tên đăng nhập"))
  60. {
  61. txtUserName.SelectAll();
  62. }
  63. else
  64. txtUserName.ForeColor = Color.Black;
  65. }
  66.  
  67. private void txtPassword_TextChanged(object sender, EventArgs e)
  68. {
  69. if(txtPassword.Text != "Mật khẩu")
  70. {
  71. txtPassword.ForeColor = Color.Black;
  72. txtPassword.UseSystemPasswordChar = true;
  73. }
  74. }
  75.  
  76. private void txtPassword_Leave(object sender, EventArgs e)
  77. {
  78. if (txtPassword.Text == "")
  79. {
  80. txtPassword.UseSystemPasswordChar = false;
  81. txtPassword.Text = "Mật khẩu";
  82. txtPassword.ForeColor = Color.DarkGray;
  83. }
  84.  
  85. }
  86.  
  87. private void txtUserName_Click(object sender, EventArgs e)
  88. {
  89. txtUserName.SelectAll();
  90. }
  91.  
  92. private void txtPassword_Click(object sender, EventArgs e)
  93. {
  94. txtPassword.SelectAll();
  95. }
  96.  
  97. private void chkShowPassword_CheckedChanged(object sender, EventArgs e)
  98. {
  99. if (chkShowPassword.Checked)
  100. txtPassword.UseSystemPasswordChar = false;
  101. else
  102. txtPassword.UseSystemPasswordChar = true;
  103. }
  104.  
  105. private void btnLogin_Click(object sender, EventArgs e)
  106. {
  107. PhongMachTuDataContext db = new PhongMachTuDataContext();
  108. Table<ACCOUNT> Acc = db.GetTable<ACCOUNT>();
  109. var data = from acc in Acc
  110. where acc.Username == txtUserName.Text
  111. select acc;
  112. if(data.SingleOrDefault() != null)
  113. {
  114. // lúc đầu chưa mã hóa, lấy thẳng mật khẩu người dùng nhập, mã hóa rồi thì mã hóa password người dùng nhập
  115. if(((data.First() as ACCOUNT).Job == "Admin"
  116. && (data.First() as ACCOUNT).Pass == (txtPassword.Text))
  117. || (data.First() as ACCOUNT).Pass == Encrypt(txtPassword.Text, txtUserName.Text))
  118. {
  119. if ((data.First() as ACCOUNT).Status == "Active")
  120. {
  121. //Đăng nhập thành công
  122. UserName = (data.First() as ACCOUNT).Username;
  123. UserJob = (data.First() as ACCOUNT).Job;
  124. UserFullName = (data.First() as ACCOUNT).Name;
  125. UserCode = (data.First() as ACCOUNT).Code;
  126. saveLog("Đăng nhập", "Đăng nhập thành công.");
  127. Close();
  128. }
  129. else
  130. {
  131. //Tài khoản đã bị khoá
  132. UserName = (data.First() as ACCOUNT).Username;
  133. saveLog("Đăng nhập", "Đăng nhập thất bại. (Tài khoản đã bị khoá)");
  134. MessageBox.Show("Tài khoản của bạn đã bị khoá! \n Hãy liên hệ quản trị viên để biết thêm thông tin.",
  135. "Đăng nhập thất bại", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  136. }
  137. }
  138. else
  139. {
  140. //Đăng nhập thất bại (Sai mật khẩu)
  141. saveLog("Đăng nhập", "Đăng nhập thất bại.(Sai mật khẩu)");
  142. MessageBox.Show("Tên đăng nhập không tồn tài hoặc sai mật khẩu.", "Đăng nhập thất bại",
  143. MessageBoxButtons.OK, MessageBoxIcon.Warning);
  144. }
  145. }
  146. else
  147. {
  148. //Đăng nhập thất bại (Tên đăng nhập không tồn tại)
  149. MessageBox.Show("Tên đăng nhập không tồn tài hoặc sai mật khẩu.", "Đăng nhập thất bại",
  150. MessageBoxButtons.OK, MessageBoxIcon.Warning) ;
  151. }
  152. }
  153.  
  154.  
  155. // Giải mã MD5 mặc định dùng hash để giải mã
  156. /*public string Decrypt(string toDecrypt, string userName, bool useHashing = true)
  157. {
  158. byte[] keyArray;
  159. byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
  160. if (useHashing)
  161. {
  162. var hashmd5 = new MD5CryptoServiceProvider();
  163. keyArray = hashmd5.ComputeHash(Encoding.UTF8.GetBytes("khagiaiminhvongbasieunguyenthikhaihoan"));
  164. }
  165. else keyArray = Encoding.UTF8.GetBytes("khagiaiminhvongbasieunguyenthikhaihoan");
  166. var tdes = new TripleDESCryptoServiceProvider
  167. {
  168. Key = keyArray,
  169. Mode = CipherMode.ECB,
  170. Padding = PaddingMode.PKCS7
  171. };
  172. ICryptoTransform cTransform = tdes.CreateDecryptor();
  173. byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
  174. return Encoding.UTF8.GetString(resultArray);
  175. }*/
  176. // Mã hóa MD5, mặc định dùng hash
  177. public string Encrypt(string toEncrypt, string key, bool useHashing = true)
  178. {
  179. byte[] keyArray;
  180. byte[] toEncryptArray = Encoding.UTF8.GetBytes(toEncrypt);
  181. if (useHashing)
  182. {
  183. var hashmd5 = new MD5CryptoServiceProvider();
  184. keyArray = hashmd5.ComputeHash(Encoding.UTF8.GetBytes(key));
  185. }
  186. else keyArray = Encoding.UTF8.GetBytes(key);
  187. var tdes = new TripleDESCryptoServiceProvider
  188. {
  189. Key = keyArray,
  190. Mode = CipherMode.ECB,
  191. Padding = PaddingMode.PKCS7
  192. };
  193. ICryptoTransform cTransform = tdes.CreateEncryptor();
  194. byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
  195. return Convert.ToBase64String(resultArray, 0, resultArray.Length);
  196. }
  197.  
  198. }
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement