using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.Serialization.Json; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Web.Services.Protocols; using System.Security.Cryptography; using System.Text; using System.Web.SessionState; using System.Data; /// /// authPermission 的摘要描述 /// public class authPermission { public string user_uid = ""; public string user_id = ""; public string user_name = ""; public string user_email = ""; public string user_type = ""; public string user_perm = ""; public string user_pic = ""; public Boolean _isLogin = false; public authPermission() { // // TODO: 在這裡新增建構函式邏輯 // string delExpiredDataStr = "delete token where token_expireddate <= '" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "'"; autoExecSQL delExpiredData = new autoExecSQL(delExpiredDataStr); HttpCookie tokenCookie = (HttpContext.Current.Request.Cookies["token"] == null) ? null : HttpContext.Current.Request.Cookies["token"]; HttpCookie idCookie = (HttpContext.Current.Request.Cookies["id"] == null) ? null : HttpContext.Current.Request.Cookies["id"]; if (tokenCookie==null) { _isLogin = false; return; } string token = tokenCookie["token"]; string id = tokenCookie["uid"]; string tokenStr = string.Format("select * from token where token_key = '{0}' and user_uid = '{1}'", token, id); autoBindDataTable tokenObj = new autoBindDataTable(tokenStr); if (tokenObj.dataRows.Count == 0) { tokenCookie.Expires = DateTime.Now.AddDays(-10); HttpContext.Current.Response.Cookies.Add(tokenCookie); _isLogin = false; return; } if (tokenObj.dataRows[0]["token_isremember"].ToString() == "Y") { idCookie.Expires = DateTime.Now.AddDays(31); tokenCookie.Expires = DateTime.Now.AddDays(10); tokenObj.dataRows[0]["token_expireddate"] = DateTime.Now.AddDays(10); HttpContext.Current.Response.Cookies.Add(tokenCookie); HttpContext.Current.Response.Cookies.Add(idCookie); } else { tokenObj.dataRows[0]["token_expireddate"] = DateTime.Now.AddMinutes(60); } string userStr = string.Format("select * from users where user_uid = '{0}' and user_onjob = 'Y'", id); autoBindDataTable userObj = new autoBindDataTable(userStr); if (userObj.dataRows.Count == 0) { _isLogin = false; return; } if (userObj.dataRows[0]["user_type"].ToString() == "N") { string elabStr = string.Format("select * from new_userdata where userid = '{0}' and onjob = 0", userObj.dataRows[0]["user_id"].ToString()); autoBindElab elabObj = new autoBindElab(elabStr); if (elabObj.dataRows.Count == 0) { userObj.dataRows[0]["user_onjob"] = "N"; userObj.updateDataTable(); _isLogin = false; return; } } user_uid = id; user_id = userObj.dataRows[0]["user_id"].ToString(); user_name = userObj.dataRows[0]["user_name"].ToString(); user_email = userObj.dataRows[0]["user_email"].ToString(); user_type = userObj.dataRows[0]["user_type"].ToString(); user_perm = userObj.dataRows[0]["user_perm"].ToString(); user_pic = userObj.dataRows[0]["user_pic"].ToString(); userObj.dataRows[0]["user_lastlogindate"] = DateTime.Now; try { userObj.updateDataTable(); tokenObj.updateDataTable(); } catch (Exception ex) { } _isLogin = true; } public Boolean isLogin() { return _isLogin; } }