public ActionResult Login(string token = "") { string uName = Request.Form["userName"]; string uPwd = Request.Form["userPassword"]; string uValidate = Request.Form["validate"]; string serviceCode = Session["ValidateCode"] as string;//服务器端验证码 if (!string.IsNullOrEmpty(uName) && !string.IsNullOrEmpty(uPwd) && uValidate.Equals(serviceCode)) { try { if (ScanDataBaseManager.IsUser(uName, uPwd)) { Guid guid = Guid.NewGuid(); CookieTools.AddCookie("token", guid.ToString(), ""); CookieTools.AddCookie("uName", uName, ""); CacheTools.CacheInsert(uName, guid.ToString(), DateTime.Now.AddDays(1)); TempData["LoginState"] = 1; return(Redirect("Index")); } } catch (Exception e) { } } return(View("Login")); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { var uNameStr = filterContext.RequestContext.HttpContext.Request.Cookies.AllKeys.FirstOrDefault(x => x == "uName"); var tokenStr = filterContext.RequestContext.HttpContext.Request.Cookies.AllKeys.FirstOrDefault(x => x == "token"); if (uNameStr != null && tokenStr != null) { var uName = filterContext.RequestContext.HttpContext.Request.Cookies.Get("uName"); var token = filterContext.RequestContext.HttpContext.Request.Cookies.Get("token"); var guid = CacheTools.GetCache <string>(uName.Value); if (token.Value == guid) { base.OnActionExecuting(filterContext); } else { filterContext.RequestContext.HttpContext.Response.Redirect("/webav/NoRights"); } } else { filterContext.RequestContext.HttpContext.Response.Redirect("/webav/NoRights"); } }
/// <summary> /// 方便用户直接使用C.R() 来获取资源文件,更少的参数,可以采用 RpcContext.R("key") /// </summary> /// <param name="resourceName">资源key</param> /// <param name="lang">语言种类</param> /// <returns>资源文字</returns> public static string R(string resourceName, string lang) { string field = CacheTools.GetPublicResourceKey(lang); var res = ResourceCache.Instance.GetHash <string>(field, resourceName); return(string.IsNullOrEmpty(res) ? resourceName : res); // 没有取到资源文件把key原样返回; // return ResourceCache.Instance.GetHash<string>(resourceName, $"LocalResource.{subSystem}.{lang}"); }
private static void UpdateCache() { if (!CacheTools.HasCache("cache-prefix")) { var allPrefix = ScanDataBaseManager.GetPrefix().Select(x => x.Prefix).ToList(); allPrefix = allPrefix.OrderByDescending(x => x.Length).ToList(); CacheTools.CacheInsert("cache-prefix", allPrefix, DateTime.Now.AddDays(1)); } }
public static List <AV> GetClosetMatch(string inputName) { List <AV> ret = new List <AV>(); List <string> allPossibleMatch = new List <string>(); inputName = inputName.ToUpper(); if (!CacheTools.HasCache("cache-prefix")) { UpdateCache(); } var allPrefix = CacheTools.GetCache <List <string> >("cache-prefix"); foreach (var prefix in allPrefix) { if (inputName.Contains(prefix)) { var pattern = prefix + "{1}-?\\d{1,5}"; var possibleId = Regex.Match(inputName, pattern).Value; if (possibleId.Contains("-")) { allPossibleMatch.Add(possibleId); } else { bool isFirst = true; StringBuilder sb = new StringBuilder(); foreach (var c in possibleId) { if (c >= '0' && c <= '9') { if (isFirst) { sb.Append("-"); isFirst = false; } } sb.Append(c); } allPossibleMatch.Add(sb.ToString()); } } } ret = JavDataBaseManager.GetAllAV(allPossibleMatch); ret = ret.OrderByDescending(x => x.AvLength).ToList(); return(ret); }
public ActionResult Logout() { var uName = CookieTools.GetCookie("uName").Value; if (!string.IsNullOrEmpty(uName)) { CacheTools.CacheRemove(uName); CookieTools.RemoveCookie(uName); CookieTools.RemoveCookie("token"); } return(View("Index")); }
public ActionResult Catelog(int limitGiga = 0, int page = 1, int pageSize = 200) { var scanResult = new List <ScanResult>(); var toBe = new List <ScanResult>(); string scanCache = "scan"; if (CacheTools.HasCache(scanCache)) { scanResult = CacheTools.GetCache <List <ScanResult> >(scanCache); } else { scanResult = ScanDataBaseManager.GetMatchScanResult(); CacheTools.CacheInsert(scanCache, scanResult, DateTime.Now.AddHours(3)); } scanResult = scanResult.Where(x => !string.IsNullOrEmpty(x.Location)).ToList(); if (limitGiga > 0) { double limit = (double)limitGiga * 1024 * 1024 * 1024; ApplicationLog.Debug("catelog -> limitGiga: " + limitGiga + " limit: " + limit); ApplicationLog.Debug("catelog -> beforeCount: " + scanResult.Count); foreach (var s in scanResult) { if (new FileInfo(s.AvFilePath).Length >= limit) { toBe.Add(s); } } ApplicationLog.Debug("catelog -> afterCount: " + toBe.Count); } else { toBe = scanResult; } var pageContent = toBe.OrderByDescending(x => x.ReleaseDate).Skip((page - 1) * pageSize).Take(pageSize).ToList(); ViewData.Add("avs", pageContent); ViewData.Add("count", (int)Math.Ceiling((decimal)toBe.Count / pageSize)); ViewData.Add("size", pageSize); ViewData.Add("current", page); ViewData.Add("total", toBe.Count); ViewData.Add("limit", limitGiga); return(View()); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { WebViewLog log = new WebViewLog(); log.IPAddress = filterContext.RequestContext.HttpContext.Request.UserHostAddress; log.Controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; log.UserAgent = filterContext.RequestContext.HttpContext.Request.UserAgent; log.Action = filterContext.ActionDescriptor.ActionName; var arrParameter = filterContext.ActionDescriptor.GetParameters(); string paramter = "?"; foreach (var pName in arrParameter) { var parameterValue = filterContext.ActionParameters[pName.ParameterName]; paramter += pName.ParameterName + "=" + parameterValue.ToString() + "&"; } log.Parameter = paramter; var uNameStr = filterContext.RequestContext.HttpContext.Request.Cookies.AllKeys.FirstOrDefault(x => x == "uName"); var tokenStr = filterContext.RequestContext.HttpContext.Request.Cookies.AllKeys.FirstOrDefault(x => x == "token"); if (uNameStr != null && tokenStr != null) { var uName = filterContext.RequestContext.HttpContext.Request.Cookies.Get("uName"); var token = filterContext.RequestContext.HttpContext.Request.Cookies.Get("token"); var guid = CacheTools.GetCache <string>(uName.Value); if (token.Value == guid) { log.IsLogin = 1; ScanDataBaseManager.InserWebViewLog(log); base.OnActionExecuting(filterContext); } else { ScanDataBaseManager.InserWebViewLog(log); filterContext.RequestContext.HttpContext.Response.Redirect("/webav/NoRights"); } } else { ScanDataBaseManager.InserWebViewLog(log); filterContext.RequestContext.HttpContext.Response.Redirect("/webav/NoRights"); } ScanDataBaseManager.InserWebViewLog(log); }
/// <summary> /// 根据当前用户cookie,判断是否登录 /// </summary> /// <returns></returns> public static Users GetUserInfoSession(HttpContext context) { var token = context.GetCookie(); if (token.IsNullOrWhiteSpace()) { return(null); } var user = CacheTools.GetData <Users>(token); if (user != null) { //失效时间顺延 SetUserInfoSession(token, user); } return(user); }
/// <summary> /// 检查当前用户是否已经存在于数据库 /// </summary> /// <param name="context"></param> public void OnActionExecuting(ActionExecutingContext context) { //home允许无身份访问 if (!context.HttpContext.IsFromWx()) { return; } var code = context.HttpContext.Request.Query["code"].ToString(); //如果请求参数有code,则从wx获取用户身份 if (!code.IsNullOrWhiteSpace()) { //获取access_token、userinfo等 var webToken = context.HttpContext.GetWebToken(code); if (webToken != null && !string.IsNullOrWhiteSpace(webToken.Openid)) { //context.HttpContext.SetCookie(webToken.Openid); BaseCore.CurrentContext.SetCookie(webToken.Openid); WxUsers.GetWxUserInfoAndInsertToDb(webToken.Openid); #region 获取当前用户信息,并缓存 var userInfo = new UserContext().GetUserDTOByOpenid(webToken.Openid); var ip = context.HttpContext.Connection.RemoteIpAddress; var port = context.HttpContext.Connection.RemotePort; //todo:考虑在缓存时,对key添加上ip/mac地址标识。 CacheTools.SetData(webToken.Openid + ip + port, userInfo); #endregion } } //若不是,取身份信息 var userOpenid = BaseCore.CurrentContext.GetCookie(); if (string.IsNullOrWhiteSpace(userOpenid)) { //无身份信息跳回主页 //context.HttpContext.Response.Redirect(); if (!string.IsNullOrWhiteSpace(context.HttpContext.Request.Path.Value.Trim('/'))) { context.Result = new Microsoft.AspNetCore.Mvc.RedirectResult($"/?redirectUrl=" + WebUtility.UrlEncode(context.HttpContext.Request.Path)); } return; } }
/// <summary> /// 得到指定key的资源信息,默认按照 微服务名称获取相关信息 /// /// </summary> /// <param name="context">上下文</param> /// <param name="key">key</param> /// <returns>资源</returns> public static string R(this RpcContext context, string key) { key = key.Trim(); var user = context.GetUserContext(); string field = CacheTools.GetPublicResourceKey(context.Language); string res = string.Empty; if (user == null) { res = ResourceCache.Instance.GetHash <string>(field, key); } else { // 从Redis先获取 租户级别的Key,如果没有 var ttField = CacheTools.GetUdfResourceKey(user.TTID, context.Language); res = ResourceCache.Instance.GetHash <string>(ttField, key); if (res == null) { // 否则拉初始资源到租户级别Key中 var defaultRes = ResourceCache.Instance.GetHash <string>(field, key); // 避免null 值建立多个key if (defaultRes != null) { ResourceCache.Instance.SetHash <string>(ttField, new KeyValuePair <string, string>(key, defaultRes)); var keyTtids = CacheTools.GetUdfTtidsKey(); ResourceCache.Instance.SetHash <string>(keyTtids, new KeyValuePair <string, string>($"{user.TTID}.{context.Language}", string.Empty)); res = defaultRes; } } } return(string.IsNullOrEmpty(res) ? key : res); // 没有取到资源文件把key原样返回; }
public static void DeleteUserInfoSession(string userName) { CacheTools.DeleteData(userName); }
public static void SetUserInfoSession(string userName, Users userInfo) { CacheTools.SetData(userName, userInfo); }
public ActionResult GetAv(string search, bool onlyExist = false, string searchType = "all", int page = 1, int pageSize = 20) { var scanResult = new List <ScanResult>(); string scanCache = "scan"; if (CacheTools.HasCache(scanCache)) { scanResult = CacheTools.GetCache <List <ScanResult> >(scanCache); } else { scanResult = ScanDataBaseManager.GetMatchScanResult(); CacheTools.CacheInsert(scanCache, scanResult, DateTime.Now.AddHours(3)); } if (onlyExist) { scanResult = scanResult.Where(x => !string.IsNullOrEmpty(x.Location)).ToList(); } var toBePlay = new List <ScanResult>(); List <ScanResult> namePlay = new List <ScanResult>(); List <ScanResult> actressPlay = new List <ScanResult>(); List <ScanResult> categoryPlay = new List <ScanResult>(); List <ScanResult> prefixPlay = new List <ScanResult>(); List <ScanResult> direPlay = new List <ScanResult>(); if (searchType == "all" || searchType == "id") { foreach (var r in scanResult) { if (r.AvId == search.ToUpper()) { toBePlay.Add(r); } } } if (searchType == "all" || searchType == "actress") { foreach (var r in scanResult) { foreach (var ac in r.ActressList) { if (ac.Contains(search)) { toBePlay.Add(r); } } } } if (searchType == "all" || searchType == "category") { foreach (var r in scanResult) { foreach (var ca in r.CategoryList) { if (ca.Contains(search)) { toBePlay.Add(r); } } } } if (searchType == "all" || searchType == "prefix") { foreach (var r in scanResult) { if (r.Prefix.Contains(search.ToUpper())) { toBePlay.Add(r); } } } if (searchType == "all" || searchType == "director") { foreach (var r in scanResult) { if (r.Director.Contains(search)) { toBePlay.Add(r); } } } var pageContent = toBePlay.OrderByDescending(x => x.ReleaseDate).Skip((page - 1) * pageSize).Take(pageSize).ToList(); ViewData.Add("avs", pageContent); ViewData.Add("search", search); ViewData.Add("count", (int)Math.Ceiling((decimal)toBePlay.Count / pageSize)); ViewData.Add("size", pageSize); ViewData.Add("current", page); ViewData.Add("total", toBePlay.Count); return(View()); }