Idle Timeout Issues

I am trying to change the idle timeout from the default 25 minutes. I have tried two different ways. One has been to add IdleTimeout to the new-uddashboard. When I do this, I have found that the cookie is still for only 25 minutes and my grids no longer load. I get errors such as this when this happens:
[Warn] ComponentController Endpoint fb122b75-9c51-4e69-935f-2a98e894112c not found.

This is consistent with every single grid that I have.

So, I thought I would try it differently and use the Grant-UDJsonWebToken. I set the date with this:

$date = [DateTime]::UtcNow.AddMinutes(40)

and then the token with this:

$token = Grant-UDJsonWebToken -Identity $Credentials.UserName -Expiry $date -Role $Role

and finally do UDAuthResult:

New-UDAuthenticationResult -Success -UserName $Credentials.UserName -Token $token

Trying this method, my cookie is still only valid for 25 minutes.

Am I doing something wrong with this?

Hi @dkkazak,

As far as i know, there is currently no way to increase the timeout .

@adam correct me if i’m wrong?

Whats the use case? If we’re talking info screens you could use UD-Helmet to set Meta refresh on the page?
https://www.w3schools.com/TAGS/att_meta_http_equiv.asp

Should refresh the site clientside and renegotiate the timeout.

1 Like

Here’s what I’ve done, and it seems to work. I’m running my dashboard in IIS with Windows Authentication.

First, I set my IdleTimeout to 43200 on the Application Pool in IIS, and disable recycling.

In my dashboard.ps1:
$ITO = New-TimeSpan -Minutes 1440

Start-UDDashboard -Content {
$Auth = New-UDAuthenticationMethod -Windows
$LoginPage = New-UDLoginPage -AuthenticationMethod @($Auth) -PassThru
New-UDDashboard -Title “” -LoginPage $LoginPage -Footer $Footer -IdleTimeout $ITO -EndpointInitialization $EI -Pages @($Pages) -Navigation $Navigation
} -Wait -AllowHttpForLogin -EndPoint $LogFileEndpoint

I can leave a dashboard up all night, and come back and everything is still working. I have a dashboard that connects to Office 365 for various functions, i have a page that monitors my DFS replication, I have a page that lets people start and stop scheduled tasks. Technically still in Beta, but seems to be working nicely.

1 Like

+1 dude!
I’ll copy some of this for myself!

Cool. I"ll have to do some playing with this to see how this works. Gives me a place to start, at least. Thanks!

I have been fighting with timeouts for a while now and i have the same setup here: iis and AD authentication but keep getting login prompt when a session is idle for over an hour… I have tried the setting above with no luck, also adding page refresh but although that doesn’t result in authentication prompts it fails to load elements…

Make sure that you have the IIS setting for ASP.NET Core set in the web.config as well.

I tried setting the meta http-equiv refresh using helmet, but it does not accept the attribute.
image

I can set other meta attributes but not the http-equiv one. Any suggestions?

Hi @jmiranto,

Could you try wrapping it in?

    "http-equiv"="refresh"'

Should work?

2 Likes

This is superb and initial testing it works! Im going to leave it overnight for the proper test but looks like a great solution.

Import-Module UniversalDashboard.Helmet

New-UdHelmet -Content {
    New-UDHTMLTag -Tag "meta" -Attributes @{
        'http-equiv' = 'refresh'
        'content' = '600'
    }
}
2 Likes

Thanks BoSen29. That worked like a charm!

1 Like

Then I dig out this older post…

We are internally still using UD 2.9 without Universal as standalone sites in production. The migration process to Universal with UD 2/3 unfortunately will take a while, because we have to change a lot to get it to work…
Back to topic:
I am using UD 2.9.0 running inside IIS. We have a few sites with UD Community and one Enterprise site. Using different UD Websites on one IIS Server (working with host headers). also using IIS URL Rewrite feature for redirecting all http traffic to https (Also Kestrel Webserver in UD is using https).
Usually I find the problem on my own but at the moment I’m a bit stuck. Perhaps someone can help me out.

The idle timeout settings are not working as expected and after about 25 minutes (this is the UD default) the sessions will time out. I am not using UdHelmet right now, and if it is not necessary, I would gladly do without it for the time being. (About 100 pages, i want a global solution for 2.9.0).
I get not redirected to the login page, the ud-page content only displays a white background. i can also browse through the navigation menu and open other pages, same effect, only a white site (page content). After i reload the page or pres F5, i get redirected to the login page.
After the 9 hours timeout i am using @psDevUK UD Component UDTimeOut to show a modal with a redirect to login page button (btw. is there any url to access the UD “Sign Out” button, so triggering a sign out? Source code says /api/internal/signout but there i only get a white screen, currently i am redirecting to /login)

So i have done the following:

IIS:

AppPool

Startmode: AlwaysRunning
Idle Timeout (minutes): 43200
(Scheduled) Recycle Timeout (minutes): 0

Site

ConnectionTimeout (seconds): 0 (also tested other values like 43200)

web.config

requestTimeout:
<aspNetCore processPath="C:\Program Files\PowerShell\7\pwsh.exe" arguments=".\dashboard.ps1" stdoutLogEnabled="true" stdoutLogFile=".\logs\\stdout" forwardWindowsAuthToken="true" requestTimeout="09:00:00" /

UD:

New-UDDashboard -Name ... -IdleTimeout (New-TimeSpan -Minutes 540)

UD AuthenticationMethod:

No Windows Auth, using a custom function to validate the Active Directory credentials. (New-UDAuthenticationResult -Success if ok)

UD LoginPage:

No -Passtru. Using custom function for validating ActiveDirectory Credentials (from different domains). Forms based.

Edit: After hitting the “timeout”, the browser console throwing this:

image

After that, the console shows this error:
Error: WhatUnauthorized fetch-service.jsx:56

Pointing to the else part in response function in fetch-service.jsx:
image

Any idea? @adam ?

Does anybody have a tip or an idea what else I could test or change?