FormsAuthentication与Session超时时间不一的解决方法
本文导语: 因为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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。