标签: session-timeout

Ruby on rails - Authlogic:定期检查用户会话是否有效

我正在寻找一个解决方案,允许我定期检查用户会话是否已过期,如果是,则将其重定向到登录页面.
我正在使用Authlogic gem,所以我正在做的是调用一个在current_user上进行测试的函数.
我的USER_SESSION_TIMEOUT是5分钟,所以我每隔5:10分钟进行一次这个ajax调用.

<%= periodically_call_remote :url => {:controller => 'user_session', :action => 'check_session_timed_out'}, :frequency =>  (USER_SESSION_TIMEOUT + 10.seconds) %>
Run Code Online (Sandbox Code Playgroud)
def check_session_timed_out
   if !current_user
      flash[:login_notice] = "Your session timed out due to a period of inactivity. Please sign in again."
      render :update do |page|
          page.redirect_to "/user_sessions/new"   
      end
   else
       render :nothing => true
   end
end
Run Code Online (Sandbox Code Playgroud)

我注意到每次调用current_user时,用户对象都会更新,因此会话更新为5分钟.
打开一个选项卡时没有问题但是如果每次调用check_session_timed_out时都有2个选项卡,则current_user将更新用户,因此会话永不过期.

任何的想法?谢谢

session ruby-on-rails session-timeout authlogic

5
推荐指数
2
解决办法
3913
查看次数

在ASP.Net中为不同的会话变量设置不同的超时

这是否可以为ASP.Net中的不同会话设置不同的超时?

编辑 我的意思是在同一页面我有2个会话变量Session ["ss1"]和Session ["ss2"],是否有可能为每个会话设置超时?或者无论如何都要像保存会话到cookie并设置过期一样?我刚刚接触ASP.Net新手

asp.net session-state session-timeout session-cookies

5
推荐指数
2
解决办法
8153
查看次数

设置为SqlServer时,为什么会话超时不起作用?

我有这条线:

<sessionState mode="SQLServer" sqlConnectionString="Data Source=localhost;User Id=sa;Password=test;" timeout="1" />
Run Code Online (Sandbox Code Playgroud)

它将会话存储在sql状态服务器中.但是一分钟后它没有正常超时.

当我更改线以使用InProc模式时:

<sessionState mode="InProc" sqlConnectionString="Data Source=localhost;User Id=sa;Password=test;" timeout="1" />
Run Code Online (Sandbox Code Playgroud)

一分钟后它会超时.

任何想法为什么会这样?使用SqlServer时如何让它超时?

asp.net iis session-timeout

5
推荐指数
2
解决办法
4509
查看次数

Silverlight,RIA和ASP.Net会话超时

我们有一个要求,当ASP.NET会话到期并且用户正在使用Silverlight插件时,我们希望将用户重定向到登录页面.

因此,情况是,我们有一个运行ASP.Net的遗留应用程序,我们所有的新模块都在Silverlight中,而旧版应用程序加载了Silverlight应用程序.这一切都有效:-)然后用户离开他们的桌面并在ASP.Net会话超时后返回,但随后尝试在使用RIA域服务的Silverlight应用程序中继续做某事.由于会话超时,RIA域服务失败,但它没有失败,因为SessionExpired异常,用户/密码无效,它只是失败,域异常类似于域中引发的"真实"异常模型,所以我们无法确定这次是因为会话已过期.

有很多关于如何保持ASP.Net会话活着的答案,我们不想这样做,我们希望会话过期,但我们希望能够在Silverlight中优雅地处理它并将用户引导到登录页面.

我们有这个工作,但问题是每当Silverlight应用程序中引发异常时,这会将您重定向到登录页面,这不是预期的行为.我们只想在会话到期的情况下重定向.

有任何想法吗?

asp.net silverlight ria session-timeout

5
推荐指数
1
解决办法
2000
查看次数

如果在线检查期间发生电源故障,我们如何更新用户再次登录门户时剩余的时间?

我正在进行一个项目在线考试只是为了获得知识.可能存在电源故障的情况,并且当候选人再次登录时,必须给出在电源故障期间浪费的时间.但是在我的javascript代码中,考试在与服务器时间相对应的2小时后结束(AJAX此处使用).时间结束后,学生将被重定向到主页.我想到了一个解决方案,但我没有找到实现它的开始.

由于会话保持不变,所以我可以保持2小时的使用时间并可以存储database.当他重新登录时,可以检查对应于他的特定行并且可以更新时间.

但我无法实现它.请告诉我是否有其他解决方案或我认为的方向是对还是错.

考试时钟从2小时开始恢复.当电力故障出现时,它不会从正在滴答作响的时间恢复.在这种情况下,无论是发生电源故障还是候选人再次重新登录,都是一样的.我不是要求任何代码来解决这个问题.我只想要一个我能想到的暗示或方向.我只是想知道它背后的概念是什么.

javascript java session session-timeout java-ee

5
推荐指数
1
解决办法
1379
查看次数

在Sharepoint 2010会话到期后,用户不必在ADFS 2.0中重新进行身份验证

此案例与Wiktor Zychla的问题非常相似,请参阅如何在与ADFS 2.0联合时正确设置超时

我们正在经历相同的行为,ADFS愉快地将用户重定向回Sharepoint站点并重新创建FedAuth cookie,即使ADFS应提示凭证 - 我们希望用户在一段时间的空闲时间后重新进行身份验证.基本上看起来会话总是滑动.

我们已禁用持久性cookie,因此在会话结束时通过关闭浏览器来删除FedAuth cookie,因此在关闭所有浏览器窗口并启动新会话后,用户必须重新进行身份验证,这样才有效.

据我所知,ADFS管理单元中的Web SSO生存期设置控制用户需要在AD FS上重新进行身份验证的时间(再次输入其凭据).Tokenlifetime和LogonTokenCacheExpirationWindow一起控制,当Sharepoint重定向到AD FS时,以便更新FedAuth cookie.

以下是来自http://msdn.microsoft.com/en-us/library/hh446526.aspx的引用:

要强制用户在重定向回ADFS时重新输入凭据,应将ADFS中的Web SSO生存期设置为小于或等于SAMLtokenlifetime减去LogonTokenCacheExpirationWindow的值.

所以,我们做了以下事情:

1.设置SAML令牌的生命周期

Add-PSSnapin Microsoft.ADFS.PowerShell

Set-AdfsRelyingPartyTrust –TargetName "[ourrelayingpartytrustreference]" –TokenLifeTime 7
Run Code Online (Sandbox Code Playgroud)

2.设置LogonTokenCacheExpirationWindow(并禁用持久性cookie)

Add-PSSnapin Microsoft.SharePoint.Powershell -EA 0

$sts = Get-SPSecurityTokenServiceConfig
$sts.UseSessionCookies = $true
$sts.LogonTokenCacheExpirationWindow = (New-Timespan -Minutes 1)

$sts.Update()

iisreset
Run Code Online (Sandbox Code Playgroud)

3.调整的Web SSO生存期:AD FS 2.0管理控制台管理单元中的5分钟(在Powershell中运行Get-ADFSProperties正确返回SsoLifetime:5)

因此预期的结果是:

  1. 用户启动一个全新的会话,请求网站
  2. 浏览器重定向到AD FS,用户输入凭据,浏览器重定向回Sharepoint站点,生成FedAuth cookie
  3. 用户闲置10分钟(以确保会话滑动期已过)
  4. 用户在Sharepoint中请求另一个页面,浏览器被重定向到AD FS
  5. 由于Web SSO生命周期为5分钟,并且正如在msdn文档中指示的那样,它少于SAMLtokenlifetime减去LogonTokenCacheExpirationWindow(SAMLtokenlifetime - LogontokenCacheExpirationWindow = 6分钟)的值,AD FS会提示用户输入凭据,用户输入凭据,浏览器是重定向到请求的Sharepoint页面并重新创建FedAuth cookie.

当前的实际行为(步骤1-4类似):

(5.)AD FS不提示输入凭据,浏览器重定向到Sharepoint页面并重新创建FedAuth cookie.

所以 - 对我们来说,看起来AD FS会话永远不会过期,无论我们做什么.如果我们创建将LogonTokenCacheExpirationWindow值设置为高于SAMLtokenlifetime的错误配置(例如,LogonTokecacheExpirationWindow = 8和SAMLtokenlifetime = 7),我们将得到Sharepoint和AD FS之间循环的预期行为. …

authentication session-timeout sharepoint-2010 federation adfs2.0

5
推荐指数
1
解决办法
1万
查看次数

会话超时混淆 - session.setMaxInactiveInterval(0)

我是JEE的新手,这让我很困惑.根据HttpSession.html #setMaxInactiveInterval(int interval)文档

一个interval的值zero以下表明会话应永不超时.

但是根据我的教科书(已经有几年了 - 所以我希望它不总是正确的)使用零作为参数会导致会话立即超时.

这段代码

public class Test extends HttpServlet {

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html");
        response.setCharacterEncoding("utf-8");

        PrintWriter out = response.getWriter();

        HttpSession session = request.getSession();
        session.setAttribute("foo", 42);
        session.setMaxInactiveInterval(0);

        out.println(session.getAttribute("foo"));//problem here

    }
}
Run Code Online (Sandbox Code Playgroud)

在Glassfish 4.0上使用似乎从教科书而不是更新的官方文档确认理论,因为它返回HTTP状态500 - 内部服务器错误,错误消息

java.lang.IllegalStateException: getAttribute: Session already invalidated

这里发生了什么?这个Glassfish 4.0错误或文档是错误的吗?或者也许有第三种选择?


PS.这段代码的工作原理应该是负值(会话没有失效),我正在使用-1而不是0在我的代码中.我只是对有问题感兴趣0.

java session glassfish session-timeout java-ee

5
推荐指数
1
解决办法
2万
查看次数

ASP.NET会话状态在Web.config以及Global.asax中不起作用

我有管理页面,我用它来为我的网站做一些更新工作.问题是会话将在一分钟或30秒内到期并将注销用户.我已经在根文件夹的Web.Config中设置了Session,也在Admin文件夹中的Web.Config中设置了Session,但会话很快就会过期.我把它设置为60分钟,但它只持续30秒或一分钟.这是我的根文件夹的web.config内容

<sessionState timeout="60" mode="InProc" 
      cookieless="false"></sessionState>


    <customErrors mode="Off">
    </customErrors>
    <trace enabled="true" />
    <authentication mode="Forms">
               <forms
    protection="All"
    timeout="120"
    domain="www.marpallichande.in"
    slidingExpiration="true"
    name="auth_cookie" />  

    </authentication>
Run Code Online (Sandbox Code Playgroud)

这是我在Admin文件夹中设置的web.cofing文件

<sessionState timeout="60" mode="InProc"
      cookieless="false"></sessionState>
Run Code Online (Sandbox Code Playgroud)

这是我在Session_Start方法下的Global.asax文件中的设置

Session.Timeout=60;
Run Code Online (Sandbox Code Playgroud)

我没有得到会话如此过期如何过期,或者除了会话之外是否还有其他原因被注销.

c# asp.net session session-timeout

5
推荐指数
1
解决办法
4万
查看次数

ASP.NET MVC会话超时,绝对还是滑动?

参考:http://msdn.microsoft.com/en-us/library/vstudio/ms178581( v= vs.100).aspx?cs-save- lang=1& cs- lang= vb#code-snippet-1

只要继续使用相同的SessionID值进行请求,会话就被视为活动.如果特定会话的请求之间的时间超过指定的超时值(以分钟为单位),则该会话将被视为已过期.使用过期的SessionID值发出的请求将导致新会话.

我想确保我正确理解该段落.从那里我读到ASP.NET Sessions在滑动规则上工作,而不是绝对规则.也就是说,会话将在最后一次会话请求后20分钟到期(假设此处为默认值为20分钟),不管请求/会话活动如何,不是绝对在会话开始后20分钟?我做对了吗?

asp.net-mvc session-timeout

5
推荐指数
1
解决办法
2804
查看次数

在将文件传输到AWS S3时处理AWS STS密钥到期?

我们已经创建了STS会话令牌系统,用于使用AWS SDK for .Net在AWS S3 Bucket上访问文件,如果传输时间花费了更多时间(文件超过15分钟,则该时间范围实际上是15分钟)(15分钟)。完整上传)我可以创建新密钥并继续上传吗?是否可以使用AWS sdk处理它?

.net amazon-s3 session-timeout amazon-web-services aws-sdk

5
推荐指数
1
解决办法
882
查看次数