¶Ô±ÈÐÂÎļþ |
| | |
| | | using MES.Service.DB; |
| | | using System.Data; |
| | | using System.Text; |
| | | |
| | | namespace MES.Service.service; |
| | | |
| | | public class LoginService |
| | | { |
| | | public static OracleSQLHelper SQLHelper = new(); |
| | | |
| | | public DataTable login(string name, string pwd) |
| | | { |
| | | var sql = |
| | | string.Format(@"select A.*,B.ROLEIDS from SYS_USER A |
| | | left join ( |
| | | SELECT LISTAGG(ROLEID, ',') WITHIN GROUP (ORDER BY ROLEID) AS ROLEIDS,userid |
| | | FROM SYS_USER_ROLE |
| | | GROUP BY userid |
| | | )B on b.USERID=a.FID where upper(FCODE)=upper('{0}')", |
| | | name); |
| | | var dataTable = SQLHelper.ExecuteQuery(sql); |
| | | if (dataTable.Rows.Count <= 0) throw new Exception("ç¨æ·ä¸åå¨"); |
| | | |
| | | var row = dataTable.Rows[0]; |
| | | var db_password = row["FPASSWORD"].ToString(); |
| | | db_password = ProPass(db_password); |
| | | if (!pwd.Equals(db_password)) throw new Exception("ç¨æ·åæè
å¯ç é误"); |
| | | |
| | | return dataTable; |
| | | } |
| | | |
| | | public DataTable getUserMenu(string name) |
| | | { |
| | | var sql = ""; |
| | | |
| | | if ("PL017".Equals(name)) |
| | | sql = "select PAGE_VIEW,PATH,ICOIMG from MES_SYS_PAGEVIEW"; |
| | | else |
| | | sql = string.Format(@"select PAGE_VIEW,PATH,ICOIMG |
| | | from (select PAGE_VIEW,PATH,ICOIMG |
| | | from MES_SYS_GUP_USER a |
| | | join MES_SYS_PAGEVIEW b on a.PAGEID = b.ID |
| | | join SYS_USER_ROLE c on to_char(c.ROLEID) = a.ROLEID |
| | | where USERID = (select fid from SYS_USER where FCODE = '{0}') |
| | | union all |
| | | select PAGE_VIEW,PATH,ICOIMG |
| | | from MES_SYS_GUP_USER a |
| | | join MES_SYS_PAGEVIEW b on a.PAGEID = b.ID |
| | | where a.ROLEID = (select FCODE from SYS_USER where FCODE = '{0}')) |
| | | group by PATH, PAGE_VIEW, ICOIMG", 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; |
| | | } |
| | | } |