using System.Data; using System.Text; using MES.Service.DB; namespace MES.Service.service; public class LoginService { public static SqlServerSQLHelper SQLHelper = new(); public DataTable login(string name, string pwd) { var sql = string.Format(@"select * from CSFrameworkV5_System.dbo.tb_myuser where Account = '{0}'", name); var dataTable = SQLHelper.ExecuteQuery(sql); if (dataTable.Rows.Count <= 0) throw new Exception("用户不存在"); var key = new KeyProviderRijndael("%SaFz$^p", "3aW%^&Fd"); var row = dataTable.Rows[0]; var db_password = row["Password"].ToString(); var enpassword = key.Encrypt(pwd); if (!enpassword.Equals(db_password)) throw new Exception("用户名或者密码错误"); return dataTable; } public DataTable getUserMenu(string name) { var sql = string.Format(@"select BB004 PAGE_VIEW,BB005 PATH,'' ICOIMG from GS_BI_QXBB where bb001 = '{0}'", name); return SQLHelper.ExecuteQuery(sql); } public int resetPassword(string newPwd, string name, string pwd) { login(name, pwd); var passwordHash = encryptPass(newPwd); var sql = string.Format( @"update SYS_USER set FPASSWORD = '{0}' where FCODE = '{1}'", passwordHash, name); return SQLHelper.ExecuteNonQuery(sql); } private string encryptPass(string str) { var b = Encoding.GetEncoding("iso-8859-1").GetBytes(str); var temp = (byte[])b.Clone(); for (var i = 0; i < b.Length; i++) temp[i] = (byte)(b[i] ^ (8 + 18)); var result = 8 + Encoding.GetEncoding("iso-8859-1").GetString(temp); return result; } private string ProPass(string src) { var result = ""; var first = int.Parse(src.Substring(0, 1)); var src_tem = src.Substring(1); var b = Encoding.GetEncoding("iso-8859-1") .GetBytes(src_tem); var temp = (byte[])b.Clone(); for (var i = 0; i < b.Length; i++) temp[i] = (byte)(temp[i] ^ (first + 18)); result = Encoding.GetEncoding("iso-8859-1") .GetString(temp); return result; } }