abbott_2024_event/App_Code/authToken.cs

78 lines
2.5 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;
using System.Data.SqlClient;
using Dapper;
using Dapper.Contrib.Extensions;
public class authToken
{
public string user_uid { get; set; }
public string user_id { get; set; }
public string user_name { get; set; }
public string user_perm { get; set; }
public Boolean user_isLogin { get; set; }
public string error_msg { get; set; }
public HttpRequest myRequest { get; set; }
SqlConnection conn = new SqlConnection(globalClass.appsettings("DBConnectionString"));
public authToken() {
conn.Execute("delete token where token_expireddate <= @token_expireddate", new { token_expireddate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") });
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)
{
user_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);
token loginToken = conn.QueryFirstOrDefault<token>(tokenStr);
if (loginToken == null)
{
tokenCookie.Expires = DateTime.Now.AddDays(-10);
tokenCookie.Values.Clear();
HttpContext.Current.Response.Cookies.Set(tokenCookie);
HttpContext.Current.Response.Cookies.Add(new HttpCookie("token", ""));
user_isLogin = false;
return;
}
else {
//idCookie.Expires = DateTime.Now.AddMinutes(60);
tokenCookie.Expires = DateTime.Now.AddDays(10);
HttpContext.Current.Response.Cookies.Add(tokenCookie);
//HttpContext.Current.Response.Cookies.Add(idCookie);
}
loginToken.token_expireddate = DateTime.Now.AddMinutes(60);
conn.Update<token>(loginToken);
user_id = "admin";
user_uid = "admin";
user_name = "系統管理者";
user_perm = "admin";
user_isLogin = true;
}
}