我的要求是通过弹出窗口通知用户,说明用户会话即将在x秒内超时,以防用户在网页上执行任何活动.
此要求的另一个要求是在弹出窗口中动态减小值x秒.
我使用的环境是Java EE.
我已经看过多篇像这样的文章解释了如何检测用户的会话已经超时.为清楚起见,这些文章指的是此web.config行定义的超时值:
<sessionState mode="InProc" cookieless="UseDeviceProfile" timeout="120" />
Run Code Online (Sandbox Code Playgroud)
不要过多地使用该方法,但这涉及检查Session.IsNewSession是否为true以及会话cookie是否已存在.但我还没有看到任何关于如何检测身份验证超时的文章- 这个web.config行定义的文章:
<authentication mode="Forms">
<forms loginUrl="~/Home/Customer" timeout="60" name=".ASPXAUTH" requireSSL="false" slidingExpiration="true" defaultUrl="~/Home/Index" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/>
</authentication>
Run Code Online (Sandbox Code Playgroud)
在线多篇文章,包括这篇SO帖子,都说你的会话超时值通常应该是你的身份验证超时值的两倍.所以现在,如上所述,我的会话是120,我的身份验证是60.这意味着我永远不会遇到会话超时的情况,但用户仍然是经过身份验证的; 如果用户超时,则由于身份验证而非会话.
所以,和其他人一样,我对如何向用户报告他们的会话超时(但实际上是由于身份验证超时)感兴趣.有没有人知道如何实现这一目标,或任何可以指向我解决方案的在线资源?
我有一个现有的Grails Web应用程序正在生产中并且有30分钟的会话超时.我们正在运行Tomcat(tcServer).
当用户通过身份验证并在某些页面上时,我想要定期轮询对服务器的ajax请求,这些请求不会延长这个30分钟的会话超时 - 这样我们的会话超时就不会被阻止.
问题类似于这个未经回答的asp.net问题,但是在Java/Tomcat领域中没有任何答案可以做到这一点.
如何在不重置tomcat的会话超时的情况下执行经过身份验证的AJAX请求?
是否存在某种过滤器或URL匹配机制,我可以使用它来排除延长会话超时的请求?
我想在使用IIS Express时测试会话超时问题,但我无法弄清楚如何修改会话状态设置,以便我可以更改Cookie设置的超时.这是一个可修改的设置吗?
我在web.config文件中将会话时间设置为9小时,如下所示:
“<sessionState mode="InProc" timeout="540" />
Run Code Online (Sandbox Code Playgroud)
但是,通常用户抱怨他们在不到9小时的时间内面临超时,并且超时后的时间间隔也会有所不同.
我想知道会话超时是否依赖于IIS中的以下任何设置:
请指教.另外,如何在IIS 7.0中检查会话超时设置?
我有一个rails 4应用程序,我正在使用设计进行身份验证,它工作得很好.我唯一的问题是,在我将其部署到服务器上并且用户必须再次登录后,它会丢失用户的会话.
如果我只是重新启动nginx/passenger(我用于我的应用程序),它就不会丢失它.当我部署我的应用程序时,我正在失去它.对于部署,我也会自动清除所有数据库,我的部署脚本运行种子文件,它也会生成用户.
我们目前正在开发应用程序,所以这种行为现在是可以接受的,但是将来当应用程序准备就绪时,我们不会这样做(当然!).
那么这是一个问题,因为重新播种还是我应该检查别的东西?我看到每次运行wipe out/seed操作时加密的密码都会改变,这是否与丢失用户会话有关?
我们的系统有一个小时的会话长度.有时,这会在用户按下表单上的"保存"按钮之前到期.当会话超时时,它们会被踢回登录页面并且它们的数据会丢失.这显然很糟糕.
我正在考虑一种更好的方法来处理这种情况.这是我想出的:
其他人如何处理这种情况?什么是最好/最简单的方法?
我不确定我是否理解:
<session-config>
<session-timeout>30</session-timeout> <!-- 30 minutes! -->
<cookie-config>
<http-only>true</http-only>
<max-age>1800</max-age> <!-- 1800 seconds: 30 minutes! -->
</cookie-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
Run Code Online (Sandbox Code Playgroud)
另外,有没有办法在web.xml中配置所有cookie?这似乎仅适用于会话cookie.我需要过滤器才能使用此功能吗?
我正在尝试使用WSO IS 5.1.0配置会话超时.
我有一个服务提供商,其会话时间为10分钟.
我已经配置了SSO sesison timeot在WSO210分钟使用枭雄控制台上的居民身份提供部分.
我不知道为什么,但全局配置(<IS_HOME>/repository/conf/identity/identity.xml file under the <TimeConfig> element)不起作用.
在本地会话超时后,用户被重定向到SSO登录页面,因此似乎全局会话无效.但是,如果您在浏览器中再次键入应用程序URL,则会将用户重定向到登录页面,自动重新进行身份验证,并重定向到上次访问的页面.为什么第一次用户进入SSO登录页面,之后 - 不是?预期的行为是在全局会话到期后不应重新验证用户.
因此,场景是:
- 用户进入服务提供商的主页并被重定向到SSO登录页面
- 用户登录SSO登录页面
- 经过一段时间SSO会话到期;
- 服务提供商的会话也会过期 - 用户进入某个服务提供商的页面并被重定向到SSO登录页面(此时似乎以某种方式重新创建了SSO会话)
- 用户再次尝试转到服务提供商的页面,他神奇地reathenticated(因为会话被重新创建).
如果你至少评论这个流程我会很感激,我现在肯定我是否理解它是如何工作的
1-我有一个调用动作的Ajax链接,该动作返回一个视图,该视图在特定Div中打开(将其视为用相应视图更新div的菜单)2-如果会话超时返回我的登录视图
所以,如果我点击链接并且会话超时,则登录视图在div中打开而不是在整个页面中
我应该怎么做,如果会话超时它返回我的div上的新页面中的登录视图?