当前位置:  编程技术>.net/c#/asp.net

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

    来源: 互联网  发布时间:2014-08-30

    本文导语:  因为FormsAuthentication 和 Session 的cookies不一样,造成了FormsAuthentication 还能进入,而 session已经超时的问题。 最好的办法就是当让FormsAuthentication 执行logout,然后再转到同一个页面。 可以定制一个module来解决此问题:   代码如下: ...

因为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();
        }
    }
}


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3