244 lines
8.7 KiB
C#
244 lines
8.7 KiB
C#
using AUTS.Domain.Application;
|
|
using AUTS.Domain.Entities;
|
|
using AUTS.Services.Extensions;
|
|
using AUTS.Services.Tool;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Security.Principal;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Web;
|
|
using System.Web.Security;
|
|
|
|
namespace AUTS.Services
|
|
{
|
|
public static class UserLoginHelper
|
|
{
|
|
//登录缓存键前缀
|
|
/// <summary>
|
|
/// 登录缓存键前缀
|
|
/// </summary>
|
|
//static string CacheUserName { get { return typeof(TBL_UTS_Manage_UserList).Name + "_"; } }
|
|
static string CookieName_User = (ConfigHelper.GetConfigString("DBName") + "_User").ToMD5();
|
|
static string CookieName_Token = (ConfigHelper.GetConfigString("DBName") + "_Token").ToMD5();
|
|
|
|
public static TBL_UTS_Manage_User GetUserLoginBy(string keyword, string password)
|
|
{
|
|
|
|
//string pwd = password.ToMD5().ToMD5();
|
|
string pwd = password.ToMD5().ToMD5();
|
|
//TBL_UTS_Manage_User matchedSList = SqlSugarBase.Db.Queryable<TBL_UTS_Manage_User>().First(x=>x.UserName== keyword && x.Password == pwd);
|
|
//if (matchedSList != null)
|
|
//{
|
|
// HttpContext.Current.Session[CookieName_User] = matchedSList;
|
|
// CookieExtensions.WriteCookie(CookieName_User, keyword, 60);
|
|
// CookieExtensions.WriteCookie(CookieName_Token, keyword.ToMD5() + "" + pwd, 60);
|
|
// return matchedSList;
|
|
//}
|
|
using (var db = new Uts_ManageEntities())
|
|
{
|
|
//var account = db.TBL_UTS_Manage_User.SingleOrDefault(a => (a.UserName == keyword.Trim()) && a.Password == password);
|
|
var account = db.TBL_UTS_Manage_User.SingleOrDefault(a => (a.UserName == keyword.Trim()) && a.Password == pwd);
|
|
|
|
if (account != null)
|
|
{
|
|
HttpContext.Current.Session[CookieName_User] = account;
|
|
CookieExtensions.WriteCookie(CookieName_User, keyword, 60);
|
|
CookieExtensions.WriteCookie(CookieName_Token, keyword.ToMD5() + "" + pwd, 60);
|
|
return account;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
|
|
//获取当前会员登录对象
|
|
/// <summary>
|
|
/// 获取当前会员登录对象
|
|
/// <para>当没登陆或者登录信息不符时,这里返回 null </para>
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static TBL_UTS_Manage_User CurrentUser()
|
|
{
|
|
//校验用户是否已经登录
|
|
var user = HttpContext.Current.Session[CookieName_User] as TBL_UTS_Manage_User;
|
|
if (user != null) return user;
|
|
else
|
|
{
|
|
if (HttpContext.Current.Request.Cookies[CookieName_User] != null && HttpContext.Current.Request.Cookies[CookieName_Token] != null)
|
|
{
|
|
string keyword = HttpContext.Current.Request.Cookies[CookieName_User].Value;
|
|
string token = HttpContext.Current.Request.Cookies[CookieName_Token].Value;
|
|
string pwd = token.Substring(32);
|
|
var db = new Uts_ManageEntities();
|
|
var account = db.TBL_UTS_Manage_User.SingleOrDefault(a => a.UserName == keyword.Trim() && a.Password == pwd);
|
|
if (account != null)
|
|
{
|
|
return account;
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 控制器名
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static string Controller()
|
|
{
|
|
//校验用户是否已经登录
|
|
var controllerName = CookieExtensions.GetCookie("controllerName");
|
|
if (controllerName != null) return controllerName;
|
|
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 管理名称
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static string ManageName()
|
|
{
|
|
//校验用户是否已经登录
|
|
var ManageName = CookieExtensions.GetCookie("ManageName");
|
|
if (ManageName != null) return ManageName;
|
|
|
|
return null;
|
|
}
|
|
/// <summary>
|
|
/// 方法名
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static string ActionName()
|
|
{
|
|
//校验用户是否已经登录
|
|
var actionName = CookieExtensions.GetCookie("actionName");
|
|
if (actionName != null) return actionName;
|
|
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 只读方法名
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static string ReadOnlyActionName()
|
|
{
|
|
//校验用户是否已经登录
|
|
var actionName = CookieExtensions.GetCookie("actionReadOnly");
|
|
if (actionName != null) return actionName;
|
|
|
|
return null;
|
|
}
|
|
|
|
//获取当前会员登录对象 异步
|
|
/// <summary>
|
|
/// 获取当前会员登录对象
|
|
/// <para>当没登陆或者登录信息不符时,这里返回 null </para>
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static TBL_UTS_Manage_User CurrentUserAsync(System.Web.HttpContext context)
|
|
{
|
|
//校验用户是否已经登录
|
|
var user = context.Session[CookieName_User] as TBL_UTS_Manage_User;
|
|
if (user != null) return user;
|
|
else
|
|
{
|
|
if (context.Request.Cookies[CookieName_User] != null && context.Request.Cookies[CookieName_Token] != null)
|
|
{
|
|
string keyword = context.Request.Cookies[CookieName_User].Value;
|
|
string token = context.Request.Cookies[CookieName_Token].Value;
|
|
string pwd = token.Substring(32);
|
|
var db = new Uts_ManageEntities();
|
|
var account = db.TBL_UTS_Manage_User.SingleOrDefault(a => a.UserName == keyword.Trim() && a.Password == pwd);
|
|
if (account != null)
|
|
{
|
|
return account;
|
|
}
|
|
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
//登出
|
|
/// <summary>
|
|
/// 登出
|
|
/// </summary>
|
|
public static void UserLogout()
|
|
{
|
|
if (CheckUserLogin())
|
|
{
|
|
//获取会员ID
|
|
var id = HttpContext.Current.User.Identity.Name;
|
|
FormsAuthentication.SignOut();
|
|
RemoveUser(id);
|
|
}
|
|
}
|
|
|
|
//移除指定会员ID的登录缓存
|
|
/// <summary>
|
|
/// 移除指定会员ID的登录缓存
|
|
/// </summary>
|
|
/// <param name="ID"></param>
|
|
public static void RemoveUser(string ID)
|
|
{
|
|
//MvcCore.Extensions.CacheExtensions.ClearCache(cacheUserName + ID);
|
|
|
|
HttpContext.Current.Session.Clear();
|
|
HttpCookie hc1 = HttpContext.Current.Request.Cookies[CookieName_User];
|
|
hc1.Expires = DateTime.Now.AddDays(-1);
|
|
HttpContext.Current.Response.Cookies.Add(hc1);
|
|
|
|
HttpCookie hc2 = HttpContext.Current.Request.Cookies[CookieName_Token];
|
|
hc2.Expires = DateTime.Now.AddDays(-1);
|
|
HttpContext.Current.Response.Cookies.Add(hc2);
|
|
}
|
|
|
|
//判断当前访问是否有会员登录
|
|
/// <summary>
|
|
/// 判断当前访问是否有会员登录
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static bool CheckUserLogin()
|
|
{
|
|
|
|
if (HttpContext.Current.Request.Cookies[CookieName_User] != null && HttpContext.Current.Request.Cookies[CookieName_Token] != null)
|
|
{
|
|
string keyword = HttpContext.Current.Request.Cookies[CookieName_User].Value;
|
|
string token = HttpContext.Current.Request.Cookies[CookieName_Token].Value;
|
|
string pwd = token.Substring(32);
|
|
var db = new Uts_ManageEntities();
|
|
try
|
|
{
|
|
var account = db.TBL_UTS_Manage_User.SingleOrDefault(a => a.UserName == keyword.Trim() && a.Password == pwd);
|
|
if (account != null) return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
throw;
|
|
}
|
|
|
|
}
|
|
return false;
|
|
}
|
|
|
|
////当前在线会员数量
|
|
///// <summary>
|
|
///// 当前在线会员数量
|
|
///// </summary>
|
|
//public static int UserCount
|
|
//{
|
|
// get
|
|
// {
|
|
// return CacheExtensions.GetAllCache().Where(s => s.StartsWith(CacheUserName)).Count();
|
|
|
|
// }
|
|
|
|
//}
|
|
}
|
|
}
|