2011-08-31 106 views
0

也许我的问题是愚蠢的,但它让我疯了,你看我有这个应用程序的会话注销,即使我用后不到期Session.Abandon(),Session.Clear(),和Session.Removeall( )。我一直在搜索整个互联网,但没有运气,我真的希望我能得到一些帮助。说我有用户X,如果我做了以下任何一个可以与X的帐号登录:用X的用户名和密码会话未过期?

1-登录。 012-2-参加会议“.ASPXFORMSAUTH”信息。从X的账户 4- 3-注销添加会话“.ASPXFORMSAUTH”使用火狐狸‘添加的cookie功能’,例如它的价值。 5键入URL并点击进入 页面刚刚打开,它真的让我疯狂!

在此先感谢

+0

什么样的会话您使用的是项目符号点3在说明部分? InProc方式? SqlServer的?还有别的吗? – FishBasketGordo

+0

SESSIONID在“注销”之前和之后保持不变? – everton

+1

页面是否显示_same_ SessionId?我希望一个新的会议悄然开始。 –

回答

-1

在这种情况下,你必须在会话的额外的标志(如“主动”),它可以注销期间设置为false。在此基础上,你可以rediect我不知道是否有被定义的方式来处理这个用户登录或任何你想要的其他一般网页..

,但就像我说我会做一些事情。

通过使用FormsAuthentication.Signout()已经注销用户并试图通过使用同一个cookie(他以某种方式访问​​它)来攻击系统以访问网站的经过身份验证的部分的情形。 在这种情况下,微软的建议还建议使用持久性机制来记录/跟踪用户注销,并使用该信息将其重定向到登录页面(并再次清除cookie),以便在后续伪造请求中使用。

Reference:

+0

谢谢您的回答,我是想到这样的事情,但因为我使用ASP.net会员提供商,我认为有一个更简单的方法。 – Feras

+0

-1这是个坏主意。改用FormsAuthentication方法。 –

+0

我一直在使用FormsAuthentication.Signout(),但仍然在再次添加cookie时,它可以进行身份​​验证...... – Feras

0

您还需要调用FormsAuthentication.SignOut()

+0

的答案和评论我一直在调用Session.RemoveAll(),Session.Abandon()和FormsAuthentication.Signout(),但问题仍然存在...... :( – Feras