啊鑫
2024-08-22 2cad690178b5373db94075f9355a390a7eba6a44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using System.Data;
using System.Text;
using MES.Service.DB;
 
namespace MES.Service.service;
 
public class LoginService
{
    public static OracleSQLHelper SQLHelper = new();
 
    public DataTable login(string name, string pwd)
    {
        var sql =
            string.Format(@"select * from SYS_USER where FCODE = '{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;
    }
}