'Running a method on timer for the life of Session
I use the following code segmant to authenticate my users to office365 for my organization and create a session cookie. This also allows me to start an SMTP connection using the MailKit SMTP Client which I initiate as a singleton in the startup.cs configuration:
this.smtpClient.Connect("smtp.office365.com", 587, SecureSocketOptions.StartTls);
this.smtpClient.Authenticate(UserName, Password);
var claims = new List<Claim>
{
new Claim(ClaimTypes.Name, user.InternalUserNumber.ToString())
};
var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
I would like to keep this connection open through the life of the session so I need to run :
smtpClient.noop();
This will allow me to keep the connection alive by pinging the server however I need to run this every 5 minutes in the background of the users session. I have seen questions on stackoverflow which may seem similar but they do not limit the lifetime to the session but instead are running a timer from IHostService.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|