您的位置:首页 > 其它

MVC Session记录错误POST登录次数(不针对某个用户)

2012-09-29 12:22 363 查看
Session的IsNewSession可以判断这次请求是否第一次访问, 所以如果是第一次访问而且cookie里包含ASP.NET_SessionId,那么可以判断Session已经过期

因此我们可以写一个如下的一个Filter加在需要判断过期的Action上,当然如果所有Action都需要处理我们可以让所有的Controller集成一个BaseController,在BaseController的OnActionExecuting方法里做, 请参考如下代码

public void OnActionExecuting(ActionExecutingContext filterContext)
{
//以下记录错误登录次数,如果错误登录次数太大,跳转到验证码登录
if (filterContext.HttpContext.Request.FilePath == "/Account/LogOn")
{
HttpContextBase ctx = filterContext.HttpContext;
if (ctx.Session != null)
{
if (ctx.Session.IsNewSession)
{
int logOnErrorTimes = 0;
ctx.Session.Add(ctx.Session.SessionID, logOnErrorTimes);
}
else
{
int logOnErrorTimes = Convert.ToInt32(ctx.Session[ctx.Session.SessionID]) + 1;
ctx.Session.Remove(ctx.Session.SessionID);
ctx.Session.Add(ctx.Session.SessionID, logOnErrorTimes);
ctx.Session.Timeout = 1440;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: