教程集 www.jiaochengji.com
教程集 >  脚本编程  >  Asp.net  >  正文 FormsAuthentication与Session超时时间不一的解决方法

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

发布时间:2015-11-07   编辑:jiaochengji.com
因为FormsAuthentication 和 Session 的cookies不一样,造成了FormsAuthentication 还能进入,而 session已经超时的问题。

因为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超时时间不一的解决方法
解决php session跨页面传递 session值丢失的问题(图文)
asp.net Session丢失的解决方法
php session 入门教程
php中session过期设置的方法详解
net中chrome无法使用session的问题解决方法
php session 使用与安全
Asp.net 默认配置下,Session莫名丢失的原因及解决办法
PHP session_start()很慢问题分析与解决办法
php session跨域跨服务器的解决方法分享

[关闭]
~ ~