ASP.NET会话超时测试
我做一些ASP.NET网站的黑箱测试,我需要测试不同的会话超时场景。
我不确定他们是否完全封装会话超时。其他然后离开一个页面打开20分钟是有一个更容易的方式强制会话超时? 解决方法
减小超时
测试这个的最简单和最非侵入的方法可能是将超时减少到一个相当小的数,如3或5分钟。这样,您可以暂停几分钟以模拟更长的暂停,而不必担心应用程序重新启动或特殊的重置代码对测试结果有任何影响。 您可以在几个位置(在适用的.NET框架版本的config文件夹中的web.config中)或仅针对应用程序修改会话状态超时。 要仅为应用程序修改超时,可以将以下内容添加到应用程序的web.config中: <system.web> <sessionState timeout="60" /> ... 或者,您也可以通过IIS配置对话框(我认为您仍然需要为您的应用程序定义一个web.config,否则编辑配置将被禁用)修改此应用程序的相同设置。 要访问它,在IIS中右键单击您的Web应用程序,然后导航到属性| ASP.NET选项卡|编辑配置|状态管理选项卡|会话超时(分钟)。 注意,你也可以通过代码来操作这个设置 – 如果这已经被完成了,web.config文件中的设置将被有效地忽略,你将需要使用另一种技术。 调用Session.Abandon() 比设置低超时稍微更干扰的技术是调用Session.Abandon()。一定要从一个独立于你的应用程序的页面调用它,因为会话实际上并没有结束,直到当前页面上的所有脚本命令被处理。 我的理解是,这将是一个相当干净的方式来测试会话超时,而不实际等待他们。 强制应用程序重新启动 在会话状态的默认配置中,您可以通过使应用程序重新启动来完全丢弃会话来模拟会话超时。这可以通过几种方式,其中几个列举如下: >通过回收应用程序池 > IIS MMC管理单元 >重新启动IIS > IIS MMC管理单元 当我提到“默认配置”,我的意思是配置为使用“InProc”会话状态模式的Web应用程序。还有其他模式可以实际维护会话状态,即使Web应用程序重新启动(StateServer,SQLServer,Custom)。 篡改与状态跟踪机制 假设您的网络应用程序未配置“无Cookie”模式(默认情况下将使用Cookie),您可以从客户端浏览器中删除包含会话ID的Cookie。 但是,我的理解是,这不是真的模拟一个超时,因为服务器仍然会知道会话,它只是不会看到任何人使用它。没有会话ID的请求将被简单地视为需要新会话的未见请求,这可能是也可能不是您想要测试的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 在网页上显示文本时,Replace(Environment.NewLi
- ASP.Net上传文件
- Programming学习1_ASP、JSP、PHP 、Perl、.NET 等WEB开发语
- asp.net – 将Salesforce.com与.NET Server C集成的最佳安全
- asp.net-mvc – 为什么POST会在MVC 4中引发异常?
- 从Asp.net查看页面调用Ajax调用返回视图的控制器方法
- asp.net-mvc – 在ASP.NET MVC中的回发之间保留复杂数据
- ASP.NET 5自定义错误页面无法在Azure网站上呈现
- 实体框架 – WebApi OData:$filter’any’或’all’查询不
- asp.net-mvc – 类型“表达式<>”在未引用的程序集中定义
- asp.net – 使用xml类型在SQL Server 2005中存储
- ASP.NET -- WebForm -- ViewState
- asp.net-mvc – 未找到路径’/ Home’的控制器或
- asp.net – 在Azure Compute Emulator之外运行Di
- asp.net-mvc – 使用PreCompiled网站运行自定义V
- asp.net – 选择下拉列表项目findbytext没有区分
- 在ASP.NET 5中,如何在中间件中获取所选路由?
- 基于 HtmlHelper 的自定义扩展Container
- asp.net-core – 无法解析目标框架’DNX,Version
- asp.net – 可能添加MIME类型到web.config而不可