ASP.Net 表单例份验证 - 超时时转到登录页面

标签 asp.net timeout forms-authentication

是否可以在超时发生时重定向到登录页面而无需等待用户先单击任何内容?
现在,当超时发生时,用户所在的页面仍然显示,但只要用户点击任何内容,它就会进入登录页面。
谢谢。

最佳答案

您需要在客户端检查 session 是否已过期。最简单的方法是在页面加载后使用 javascript 简单地开始倒计时(只要超时)。当它到期时,将用户发送到登录页面。或者更好:让用户知道 session 已经过期,因为如果你只是把他送到某个地方,他可能不会太高兴。虽然我的网上银行软件正是这样做的,但当然是出于安全原因。

这是一个非常简单的例子:http://jsfiddle.net/39Sj6/1/

function sessionHasExpired(){
    if(confirm("Your session has expired. Do you want to go to the login page")){
        window.location = "http://google.com/?q=login";   
    }
}

var sessionTimeInMilliseconds = 1000*60*5; // here: 5 minutes
setTimeout(sessionHasExpired, sessionTimeInMilliseconds );

(在 jsfiddle 中,您不会被重定向到 google,因为 jsfiddle 禁止这样做,但原则上它会起作用)

关于ASP.Net 表单例份验证 - 超时时转到登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9536458/

相关文章:

node.js在发出http请求时区分错误

ruby-on-rails - 如何调试随机 Timeout::Error: execution expired

asp.net - Owin:主机名(或IP)和端口

asp.net - 高级数据库搜索示例

c# - 在 (url) 处没有监听可以接受消息的端点

php - 在特定时间后在 php 中终止函数?

sharepoint-2010 - SharePoint 2010 自定义 WCF 服务 - Windows 和 FBA 身份验证

forms-authentication - "Unable to validate data"在不同的 Web 应用程序之间使用 FormsAuthentication

c# - asp.net c# 连接到本地 Db vs2008