初始化项目
This commit is contained in:
243
AUTS.Services/UserLoginHelper.cs
Normal file
243
AUTS.Services/UserLoginHelper.cs
Normal file
@@ -0,0 +1,243 @@
|
||||
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();
|
||||
|
||||
// }
|
||||
|
||||
//}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user