Es gibt viele Wege mit dem Management Server eine Kommunikation aufzubauen. Jedoch alle habe eines gemeinsam, wenn man längere Arbeitsabläufe vornehmen möchte > die Sitzung (Session) läuft irgendwann ab.
Im Browser mit dem WebInterface (GUI) ist das recht einfach, solange man in dem konfigurierten Timeout Zeitfenster ein Aktion (einen Klick) durchführt. Im Standardfall reicht es, wenn man einmal in < 70 Minuten einen Klick in der GUI durchführt, damit sich die Sitzung (Session) um weitere 70 Minuten verlängert.
Wenn man jedoch z.B. den RQL WebService nutzen möchte, bei dem keine GUI existiert und man nicht durch eine Benutzerinteraktion die Sitzung (Session) verlängern kann, wie kann man da die Management Server Sitzung (Session) verlängern?
Derzeit werden im Management Server, aus der Historie geschuldet, drei Typen von Sitzung (Session) vorgehalten:
Damit man im richtigen Kontext die passende/n Sitzung/en (Session/s) auch aufrecht halten kann, gibt es verschiedene Methoden um dies zu tun.
Bei der Classic ASP Session bietet sich ein einfacher AJAX-Aufruf, welcher in die entsprechende WebApplikation auf der Anwenderseite eingebaut wird. Wichtig dabei ist, dass der Browser AJAX unterstützt, was bei älteren Versionen bestimmter Browserhersteller nicht immer gegeben ist ;)
function keepAlive() { if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } xhr.open("GET","someURL.asp"); // Es muss eine ASP-Seite sein! xhr.send(); xhr.onreadystatechange=function() { if (xhr.readyState==4) { sessionMon() ; // Starte den Session-Timeout neu } } }
function sessionMon() { setTimeout(function(){ promptThem(); },14140000); // Frage nach Verlängerung nach 69 Minuten }
function promptThem() { if(confirm("Möchtest du deine Sitzung um weitere 70 Minuten verlängern?")) sessionMon(); else window.location.href = "/"; // Schicke den Anwender irgendwo hin }
Quelle des Original: https://www.experts-exchange.com/questions/22100993/keeping-session-alive-in-asp.html
Bei der ASP.NET Session bietet der Management Server eine native Unterstützung um die Sitzung (Session) zu verlängern. Dazu muss man nut einen HTTP-Request mit der Methode GET an die nachfolgende URL schicken:
/cms/webservice/v1/session/current
Die Server Session (RQL) kommt meist zum Einsatz, wenn man z.B. bei einer M2M (Machine-to-Machine) Anbindung zum Management Server den RQL WebService nutzt. Dann kann man die Sitzung (Session) mit einem kleinen RQL auch im Server selbst verlängern:
<IODATA loginguid="[!guid_login!]" sessionkey="[!key!]"> <REFRESH/> </IODATA>
Es gibt, wie man sieht, viele Möglichkeiten um in den unterschiedlichen Anwendungsfällen den Timeout einer Sitzung (Session) zu steuern. Sicherlich gibt es auch noch weitere sinnvolle und gültige Methoden um die jeweiligen Sitzungen aufrecht zu halten. Auf jeden Fall ist es gut zu wissen, dass man dies gezielt und im passenden Kontext steuern kann - Viel Spaß beim ausprobieren und implementieren ;)
... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.
Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.