关于session验证用户登陆的问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 08:33:22
用户在login.aspx界面,如果登陆成功,则用Session["yonghu"]=用户名+密码;然后进入edit.aspx界面,我在edit.aspx的Page_Load里设了如下验证
if(Session["yonghu"]==null){reponse.redirect("login.apsx");}
我的退出代码是这样 :Session.Abandon(),另外其他的Clear,Remove,Removeall都用了,还是出现这么个问题:
退出后:
地址栏用http://localhost/rel/edit.aspx不能进入edit界面,然后转到Login.aspx验证;但是地址栏刚才有的一些地址,(好象是那些带参的地址)
如:http://localhost/rel/edit.aspx?id=45 却可以直接进入到某一篇文章的编辑页面,但是如果*提 交*修改则返回Login.aspx验证,这说明退出的代码起作用了, Session应该起作用了,但怎么能进入编辑 却不能提交呢?

还有就是,如果关闭当前浏览器,再重起IE,则原来的带参地址
http://localhost/rel/edit.aspx?id=45 也进不去了,必须转到登陆框才行.
这到底怎么回事啊
快如疾风的刺客
什么坏了啊,我写的程序后自己再发布,就是这样,在多台机子上都是这样,是代码的问题,但我不知道原因在那? 谢谢
fenglailiu 谢谢了,说实话我还没有细看呢,不过问题解决了,
有野问的提示是

一. 设置web.config相关选项

先启用窗体身份验证和默认登陆页,如下。

<authentication mode="Forms">

<forms loginUrl="default.aspx"></forms>

</authentication>

设置网站可以匿名访问,如下

<authorization>

<allow users="*" />

</authorization>

然后设置跟目录下的admin目录拒绝匿名登陆,如下。注意这个小节在System.Web小节下面。

<location path="admin">

<system.web>

<authorization>

<deny users="?"></deny>

</authorization>

</system.web>

</location>

把http请求和发送的编码设置成GB2312,否则在取查询字符串的时候会有问题,如下。

<globalization requestEncoding="gb2312" responseEncoding="gb2312" />

设置session超时时间为1分钟,并启用cookieless,如下。

<sessionState mode="InProc" cookieless="true" time