Anlan.com

Disorganizzata cronologia di esperienze IT (e non …)
Options:

Convalidare un indirizzo IP con .NET

Spesso ci si trova nella necessità di ricercare complessi pattern Regexp per convalidare un indirizzo IP.

In realtà c’è un metodo molto più semplice e molto .NETish

Public Shared Function IsValidIP(ByVal address As String) As Boolean

Dim IpAddress As System.Net.IPAddress = Nothing

If System.Net.IPAddress.TryParse(address, IpAddress) Then
Return True
End If

Return False

End Function

 


Molto spesso nelle applicazioni Web il codice che scriviamo gestisce tutta una serie di directory siano esse temporanee oppure organiche all’applicazione (come ad esempio la creazione di cartelle specifiche per contenere le immagini di un articolo) dipendenti dalla radice principale dell’applicazione.  Quando queste cartelle non servono più (ad esempio l’articolo è stato eliminato) si cancellano e basta.

E qui si pone un problema : quando il codice ASP.NET (sia esso VB, C# o qualsiasi altro) cancella una sottodirectory della radice principale della applicazione, succede che l’intera sessione viene invalidata. Mi è successo proprio perchè ogni volta che, tramite codice, effettuavo una cancellazione, dovevo riautenticarmi. Il motivo di questo comportamento è dovuto a due fattori:

  1. La cancellazione di una directory dipendente dalla radice dell’applicazione causa il restart dell’intera applicazione (AppDomain restart)
  2. La gestione dello stato di sessione in modalità InProcess è legata allo stato dell’applicazione : se questa si riavvia, si perde anche lo stato della sessione.

Come ovviare quindi al problema ? Semplice … o non si cancellano le directory (naaahhhh) … oppure si attiva lo stato di session out-of-process tramite StateServer o un provider a vostra scelta: sqlServer oppure uno custom. In questo modo non incorrete nel rischio di spaccarvi la testa per due ore perse a capire come mai la sessione scade in continuazione.

Alla prossima.

 



 
Loading


Categorie