132 lines
3.9 KiB
C#
132 lines
3.9 KiB
C#
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;
|
|
|
|
|
|
/// <summary>
|
|
/// authPermission 的摘要描述
|
|
/// </summary>
|
|
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;
|
|
}
|
|
} |