chenxy 2 роки тому
батько
коміт
73697e6d08
1 змінених файлів з 231 додано та 0 видалено
  1. 231 0
      wwwroot/App_Code/LoginByAD1.cs

+ 231 - 0
wwwroot/App_Code/LoginByAD1.cs

@@ -0,0 +1,231 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Data;
+using Curtain.DataAccess;
+using DK.XuWei.WebMes;
+
+/// <summary>
+/// Login 的摘要说明
+/// </summary>
+namespace DK.XuWei.WebMes
+{
+    public static partial class dkmes
+    {
+        public static JsonResult LoginByAD1(string userCodeAD)
+        {
+            JsonResult result = new JsonResult();
+
+            using (IDataAccess conn = DataAccess.Create())
+            {
+                string userId = "";
+                DateTime today = DateTime.Now;
+                string guid = Guid.NewGuid().ToString();
+
+                //开启事务
+                conn.BeginTransaction();
+
+                #region 读取用户信息
+                DataTable userTable = conn.ExecuteDatatable(@"
+                    SELECT
+                        u.ACCOUNTID,
+                        u.ACCOUNTCODE,
+	                    u.USERID,
+	                    u.USERCODE,
+	                    u.USERNAME,
+	                    u.PASSWORD,
+	                    u.ORGANIZATIONID,
+	                    u.ISWORKER,
+	                    u.LIMITSTARTTIME,
+	                    u.LIMITENDTIME
+                    FROM
+	                    TP_MST_USER u
+                    WHERE
+	                    u.VALUEFLAG = '1' 
+	                    AND u.ad_user_code = @ad_user_code@
+                    ",
+                    new CDAParameter("ad_user_code", userCodeAD)
+                    );
+                #endregion
+
+                //验证用户密码
+                if (userTable.Rows.Count == 1)
+                {
+                    userId = userTable.Rows[0]["USERID"].ToString();
+                    result.success = true;
+                    result.message = "用户登录成功!";
+                    //if (userTable.Rows[0]["PASSWORD"].ToString() == userPassword)
+                    //{
+                    //}
+                    //else
+                    //{
+                    //    //更新密码错误次数
+                    //    conn.ExecuteNonQuery(@"
+                    //        UPDATE 
+                    //            TP_MST_USERLOGIN
+                    //        SET
+                    //            MISSTIMES = MISSTIMES + 1
+                    //        WHERE 
+                    //            USERID = @USERID@
+                    //        ",
+                    //        new CDAParameter("USERID", userId)
+                    //        );
+
+                    //    //读取错误次数
+                    //    string missTimes = conn.ExecuteScalar(@"
+                    //        SELECT 
+                    //            MISSTIMES
+                    //        FROM
+                    //            TP_MST_USERLOGIN
+                    //        WHERE
+                    //            USERID = @USERID@
+                    //        ",
+                    //        new CDAParameter("USERID", userId)
+                    //        ).ToString();
+
+                    //    result.success = false;
+                    //    result.message = "用户名或密码错误!";
+                    //    result.message += "登录失败次数:" + missTimes + ",";
+                    //    result.message += "连续登录失败 " + LoginSetting.MissTimes.ToString() + " 次,";
+                    //    result.message += "您的账号将被锁定 " + LoginSetting.LockHour.ToString() + " 小时!";
+
+                    //    //错误次数上限锁定操作
+                    //    //更新锁定标识
+                    //    int isLock = conn.ExecuteNonQuery(@"
+                    //        UPDATE 
+                    //            TP_MST_USERLOGIN
+                    //        SET
+                    //            ISLOCKED = '1',
+                    //            LOCKTIME = @LOCKTIME@
+                    //        WHERE 
+                    //            USERID = @USERID@
+                    //            AND MISSTIMES >= @MISSTIMES@
+                    //        ",
+                    //        new CDAParameter("LOCKTIME", today),
+                    //        new CDAParameter("USERID", userId),
+                    //        new CDAParameter("MISSTIMES", LoginSetting.MissTimes)
+                    //        );
+
+                    //    //写入锁定时间
+                    //    if(isLock>0)
+                    //    {
+                    //        conn.ExecuteNonQuery(@"
+                    //            UPDATE 
+                    //                TP_MST_USER
+                    //            SET
+                    //                LIMITSTARTTIME = @LIMITSTARTTIME@,
+                    //                LIMITENDTIME = @LIMITENDTIME@
+                    //            WHERE 
+                    //                USERID = @USERID@
+                    //            ",
+                    //            new CDAParameter("LIMITSTARTTIME", today),
+                    //            new CDAParameter("LIMITENDTIME", today.AddHours(LoginSetting.LockHour)),
+                    //            new CDAParameter("USERID", userId)
+                    //            );
+
+                    //        result.success = false;
+                    //        result.message = "用户账户已被锁定!";
+                    //        result.message += " 锁定时间:" + today.ToString() + " 至 " + today.AddHours(LoginSetting.LockHour);
+                    //    }
+                    //}
+                }
+                else
+                {
+                    result.success = false;
+                    result.message = "用户名错误!";
+                }
+
+                //验证是否被锁定
+                //if (result.success == true)
+                //{
+                //    DataTable lockTable = conn.ExecuteDatatable(@"
+                //        SELECT
+	               //         u.LIMITSTARTTIME,
+                //            u.LIMITENDTIME
+                //        FROM
+	               //         TP_MST_USER u
+	               //         LEFT JOIN TP_MST_USERLOGIN l ON u.USERID = l.USERID 
+                //        WHERE
+	               //         l.USERID = @USERID@ 
+	               //         AND l.ISLOCKED = '1'
+	               //         AND @LIMITSTARTTIME@ > u.LIMITSTARTTIME 
+	               //         AND @LIMITENDTIME@ < u.LIMITENDTIME
+                //        ",
+                //        new CDAParameter("USERID", userId),
+                //        new CDAParameter("LIMITSTARTTIME", today),
+                //        new CDAParameter("LIMITENDTIME", today)
+                //        );
+
+                //    if (lockTable.Rows.Count == 0)
+                //    {
+                //        result.success = true;
+                //        result.message = "用户登录成功!";
+                //    }
+                //    else
+                //    {
+                //        result.success = false;
+                //        result.message = "用户账户已被锁定!";
+                //        result.message += " 锁定时间:" + lockTable.Rows[0]["LIMITSTARTTIME"].ToString() + " 至 " + lockTable.Rows[0]["LIMITENDTIME"].ToString();
+                //    }
+
+                //}
+
+                //更新登录信息并记录Session
+                if (result.success == true)
+                {
+                    //重置密码错误次数 更新最后登录时间 更新SessionKey 更新登录状态
+                    conn.ExecuteNonQuery(@"
+                        UPDATE 
+                            TP_MST_USERLOGIN
+                        SET
+                            ISLOCKED = '0',
+                            MISSTIMES = 0,
+                            LASTLOGINTIME = @LASTLOGINTIME@,
+                            WEBISLOGIN = '1',
+                            WEBSESSIONKEY = @WEBSESSIONKEY@
+                        WHERE 
+                            USERID = @USERID@
+                        ",
+                        new CDAParameter("LASTLOGINTIME", today),
+                        new CDAParameter("WEBSESSIONKEY", guid),
+                        new CDAParameter("USERID", userId)
+                        );
+
+                    //记录Session
+                    HttpContext.Current.Session["accountId"] = userTable.Rows[0]["ACCOUNTID"].ToString();
+                    HttpContext.Current.Session["accountCode"] = userTable.Rows[0]["ACCOUNTCODE"].ToString();
+                    HttpContext.Current.Session["userId"] = userTable.Rows[0]["USERID"].ToString();
+                    HttpContext.Current.Session["userCode"] = userTable.Rows[0]["USERCODE"].ToString();
+                    HttpContext.Current.Session["userPassword"] = userTable.Rows[0]["PASSWORD"].ToString();
+                    HttpContext.Current.Session["webSessionKey"] = guid;
+
+                    //如果是成检 必须更新 sessionKey 会顶掉PC或PDA登录的相同用户
+                    //if (productCheck)
+                    //{
+                    //    conn.ExecuteNonQuery(@"
+                    //    UPDATE 
+                    //        TP_MST_USERLOGIN
+                    //    SET
+                    //        SESSIONKEY = @SESSIONKEY@
+                    //    WHERE 
+                    //        USERID = @USERID@
+                    //    ",
+                    //        new CDAParameter("SESSIONKEY", guid),
+                    //        new CDAParameter("USERID", userId)
+                    //        );
+                    //    HttpContext.Current.Session["sessionKey"] = guid;
+                    //}
+
+                }
+
+                //提交数据
+                conn.Commit();
+
+                return result;
+            }
+
+        }
+
+    }
+}