RolePermission.WebApp/Filter/LoginFilterAttribute.cs
(完整代码) 2KBusing RolePermission.Common;
using RolePermission.Model;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
namespace RolePermission.WebApp.Filter
{
/// <summary>
/// 登录验证过滤器
/// </summary>
public class LoginFilterAttribute : ActionFilterAttribute
{
/// <summary>
/// 当Action中标注了[LoginFilter]的时候会执行
/// </summary>
/// <param name="filterContext">请求上下文</param>
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//if (filterContext.HttpContext.Session["account"] == null)
//{
// filterContext.HttpContext.Response.Write(" <script type='text/javascript'> window.top.location='Login'; </script>");
// filterContext.Result = new EmptyResult();
// return;
//}
base.OnActionExecuting(filterContext);
bool result = false;
if (filterContext.HttpContext.Request.Cookies["sessionId"] != null)
{
string sessionId = filterContext.HttpContext.Request.Cookies["sessionId"];//接收从Cookie中传递过来的Memcache的key
object obj = Common.MemcacheHelper.Get(sessionId);//根据key从Memcache中获取用户的信息
if (obj != null)
{
var account = SerializerHelper.DeserializeToObject<Account>(obj.ToString());
if (account == null)
{
result = true;
}
}
else
{
result = true;
}
}
else
{
result = true;
}
if(result)
{
//filterContext.HttpContext.Response.Write(" <script type='text/javascript'> window.top.location='Login'; </script>");
filterContext.HttpContext.Response.Redirect("/Login");
filterContext.Result = new EmptyResult();
return;
}
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。