code it

Martins Tech Blog

SessionID ändert sich bei jedem Aufruf

Für den Abgleich der Sessions unterschiedlicher Systeme hatte ich mich dazu entschieden, die SessionID als eindeutigen Kennzeichner meiner Session an das Fremdsystem weiterzugeben und anhand dieser weitere Logik zu implementieren. 

Leider musste ich dann feststellen, dass die SessionID aus HttpContext.Current.Session.SessionID bei jedem Seitenaufruf (sogar bei Postbacks) anders war. Glücklicherweise hab ich eine Erklärung und auch eine Lösung im ASP.NET-Forum gefunden:

Q: Why does the SessionID changes in every request?

A: This may happen if your application has never stored anything in the session state. In this case, a new session state (with a new ID) is created in every request, but is never saved because it contains nothing.

However, there are two exceptions to this same session ID behavior:

- If the user has used the same browser instance to request another page that uses the session state, you will get the same session ID every time. For details, see "Why does the SessionID remain the same after the Session times out?"

- If the Session_OnStart event is used, ASP.NET will save the session state even when it is empty.

Ab dem Zeitpunkt wo man einen Wert in die Session schreibt bleibt die SessionID also gleich: trivial, aber aus meiner Sicht ein unnötiges Problem für die Entwickler.

SPUtility - die Erste

Beim Durchhangeln durch die verschiedenen SharePoint-Klassen findet sich doch das ein oder andere Goodie... Eine davon ist die Klasse Microsoft.SharePoint.Utility.SPUtility.

Wenn eine Standard-Aktion erfolgreich oder fehlerhaft war, zeigt der SharePoint eine entsprechende Seite an. Das können wir auch - und zwar mit folgenden Methoden:

SPUtility.TransferToErrorPage("Ein Fehler ist passiert!");

 

SPUtility.TransferToSuccessPage("Alles ist gut!");