Refactor Windream session initialization and login checks

Refactored Windream session management to use IsLoggedIn() for determining when to re-initialize the session, removing the previous 2-hour expiration logic. Improved IsLoggedIn() to handle null session objects safely. Also removed explicit Windream initialization from frmNIHauptseite.vb, centralizing session handling and improving robustness against session expiration and null references.
This commit is contained in:
OlgunR
2026-04-15 17:18:59 +02:00
parent c3c214dfed
commit 8f894d582d
3 changed files with 4 additions and 13 deletions

View File

@@ -14,7 +14,6 @@ Public Class ClassNIProfile
xmlConfigFile = oConfigPath xmlConfigFile = oConfigPath
ClassNIProfile.LoadFromXmlFile() ClassNIProfile.LoadFromXmlFile()
' 3b. Windream initialisieren (Connection, Session, ... aufbauen) ' 3b. Windream initialisieren (Connection, Session, ... aufbauen)
_windream.Init()
End Sub End Sub
Public Shared Function IsXmlAccessable() As Boolean Public Shared Function IsXmlAccessable() As Boolean
Dim xml As New Xml.XmlDocument Dim xml As New Xml.XmlDocument

View File

@@ -107,10 +107,8 @@ Public Class ClassWindream_allgemein
''' <returns>Liefert True wenn das Anmelden erfolgreich war, sonst False</returns> ''' <returns>Liefert True wenn das Anmelden erfolgreich war, sonst False</returns>
''' <remarks></remarks> ''' <remarks></remarks>
Public Function Init() As Boolean Public Function Init() As Boolean
Dim oHourDifference As Integer
oHourDifference = CInt(DateDiff(DateInterval.Hour, CURRENToWMSession_Created, Now))
If IsNothing(CURRENToWMSession) Or oHourDifference >= 2 Then If IsNothing(CURRENToWMSession) OrElse Not IsLoggedIn() Then
If WMLOGIN_DOMAIN <> String.Empty Then If WMLOGIN_DOMAIN <> String.Empty Then
GetWMSessionAsUser(WMLOGIN_DOMAIN, Me.GetCurrentServer, WMLOGIN_USER, WMLOGIN_PW) GetWMSessionAsUser(WMLOGIN_DOMAIN, Me.GetCurrentServer, WMLOGIN_USER, WMLOGIN_PW)
Else Else
@@ -123,7 +121,6 @@ Public Class ClassWindream_allgemein
Return True Return True
End If End If
End Function End Function
Private Function GetWMSession() Private Function GetWMSession()
Try Try
@@ -530,6 +527,9 @@ Public Class ClassWindream_allgemein
''' <remarks></remarks> ''' <remarks></remarks>
Public Function IsLoggedIn() As Boolean Public Function IsLoggedIn() As Boolean
Try Try
If IsNothing(Me.oWMSession) Then
Return False
End If
Return Me.oWMSession.aLoggedin Return Me.oWMSession.aLoggedin
Catch ex As Exception Catch ex As Exception
clsHelper.Add_Application_log("Unexpected error in Windream.IsLoggedIn: " & ex.Message) clsHelper.Add_Application_log("Unexpected error in Windream.IsLoggedIn: " & ex.Message)

View File

@@ -68,17 +68,9 @@ Public Class frmNIHauptseite
_windreamNI = New ClassNIWindream(_MyLogger) _windreamNI = New ClassNIWindream(_MyLogger)
database = New ClassNIDatenbankzugriff(_MyLogger) database = New ClassNIDatenbankzugriff(_MyLogger)
' 3b. Windream initialisieren (Connection, Session, ... aufbauen) ' 3b. Windream initialisieren (Connection, Session, ... aufbauen)
If _windreamNI.Init() = False Then
_Logger.Warn("Die Windream-Klasse konnte nicht initialisiert werden. Windream-Client unvollständig gestartert.")
Exit Sub
End If
'ClassMoveRenameLogger.Init("", "MoveRename_", True) 'ClassMoveRenameLogger.Init("", "MoveRename_", True)
AddHandler bwProfil.DoWork, AddressOf bwProfil_DoWork AddHandler bwProfil.DoWork, AddressOf bwProfil_DoWork
AddHandler bwProfil.RunWorkerCompleted, AddressOf bwProfil_RunWorkerCompleted AddHandler bwProfil.RunWorkerCompleted, AddressOf bwProfil_RunWorkerCompleted
AddHandler bwProfil.ProgressChanged, AddressOf bwProfil_ProgressChanged AddHandler bwProfil.ProgressChanged, AddressOf bwProfil_ProgressChanged