关于身份验证票和Session的关系

hwyqy 2011-02-17 09:56:18
程序里用到了身份验证票,也用到了Session。有没有可能出现,身份验证票还没过期(过期后访问任何一个Deny Users=?的网页都要自动跳转到指定的LoginPage),而Session已经过期。Session一过期,会导致网页中的代码访问Session时出错。如果每次访问Session我都判断为不为空,那样的话,还不如干脆不用身份验证票算了,反正都要判断的。
有没有简单点的解决办法呢?
...全文
125 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-02-21
  • 打赏
  • 举报
回复
两者没关系。

FORM认证详解
晚上搂书睡 2011-02-21
  • 打赏
  • 举报
回复
两者没有关系 你完全可以只用session 在session过期后跳转登陆页面~~ 即可
ltcszk 2011-02-21
  • 打赏
  • 举报
回复
身份验证和session都是基于cookie的
其实session只记录登陆状态的话就没必要做了,因为cookie本身保存了票据
andrewsway 2011-02-18
  • 打赏
  • 举报
回复
SessionState 的Timeout(ASP.NET Session超时),其主要原因有三种

一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。

二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。

三:程序有框架页面和跨域情况。

ASP.NET Session超时的第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它)

第二种是检查代码有无Session.Abandon()之类的。

第三种是在Window服务中将ASP.NET State Service 启动。

下面是帮助中的内容:

(ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconsessionstate.htm)

ASP.NET 提供一个简单、易于使用的会话状态模型,您可以使用该模型跨多个 Web 请求存储任意数据和对象。它使用基于字典的、内存中的对象引用(这些对象引用存在于 IIS 进程中)缓存来完成该操作。使用进程内会话状态模式时请考虑下面的限制:

使用进程内会话状态模式时,如果 aspnet_wp.exe 或应用程序域重新启动,则会话状态数据将丢失。这些重新启动通常会在下面的情况中发生:

在应用程序的 Web.config 文件的 < processModel> 元素中,设置一个导致新进程在条件被满足时启动的属性,例如 memoryLimit。

修改 Global.asax 或 Web.config 文件。

更改到 Web 应用程序的 Bin 目录。

用杀毒软件扫描并修改 Global.asax 文件、Web.config 文件或 Web 应用程序的 Bin 目录下的文件。

如果在应用程序的 Web.config 文件的 < processModel> 元素中启用了网络园模式,请不要使用进程内会话状态模式。否则将发生随机数据丢失。

ASP.NET Session超时的解决方法还有这二种:

一:在第一个页面置了SESSION,然后REDIRECT去第二个页面。解决方法是在REDIRECT中设置endResponse为FALSE。

二: ASP.NET中使用了ACCESS数据库,而且数据库是放在bin目录中的。解决方法是不要放会更新的文件在BIN目录中。
wuyq11 2011-02-17
  • 打赏
  • 举报
回复
FormsAuthentication是表单验证,只是负责Cookies的有效性
是基于cookie的
服务端完全可以关掉session支持,IPrincipal接口
<forms loginUrl="/Login.aspx" name=".ASPXFORMSAUTH">
</forms>

心灵彩虹 2011-02-17
  • 打赏
  • 举报
回复
可以用session,也可以设置数据库字段判断是否登录。如果登录就。。。否则就。。。
phil999 2011-02-17
  • 打赏
  • 举报
回复
身份验证票和 session 根本就没关系,虽然他们都可以“过期”

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧