首页 > 其他 > 详细

FormsAuthentication与Session超时时间不一的解决方法

时间:2015-04-28 09:24:09      阅读:284      评论:0      收藏:0      [点我收藏+]

因为FormsAuthentication 和 Session 的cookies不一样,造成了FormsAuthentication 还能进入,而 session已经超时的问题。

最好的办法就是当让FormsAuthentication 执行logout,然后再转到同一个页面。

可以定制一个module来解决此问题:

public class CheckSessionModule: IHttpModule
{
    public void Init(HttpApplication app)
    {
        ctx.Application.AcquireRequestState += this.OnAcquireRequestState;
    }
    public void Dispose() {}
    public void OnAcquireRequestState(Object sender, EventArgs args)
    {
        if ((HttpContext.Current.User.Identity.IsAuthenticated == true) &&

(HttpContext.Current.Session.IsNewSession == true))
        {
            FormsAuthentication.SignOut();
            HttpContext.Current.Response.Redirect(HttpContext.Current.Request.Url.ToString(), false);
            HttpContext.Current.ApplicationInstance.CompleteRequest();
        }
    }
}

 

FormsAuthentication与Session超时时间不一的解决方法

原文:http://www.cnblogs.com/hnsongbiao/p/4462003.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!