Profile API ASP.NET: disabilitare LastActivityDate, quando non serve

Le Profile API sono una feature di ASP.NET che conosco in quanto è uno degli argomenti che tratto durante i corsi che tengo, ma in realtà non la uso mai perchè preferisco creare domain model ad-hoc.
In un progetto che sto seguendo ho voluto affidarmi temporaneamente all'utilizzo di questa funzionalità, che ci ha fatto risparmiare un po' di tempo.
Il fatto è che ha creato un problema di riflesso, era ovvio :-); interrogando le proprietà del profilo viene anche aggiornata la proprietà LastActivityDate dell'utente a cui è associato, usando l'SqlMembershipProvider.
In questo modo, ciclando sugli utenti per visualizzarli in un GridView ad esempio, appaiono tutti online :-D.

La proprietà MembershipUser.IsOnline infatti viene calcolata facendo la differenza tra la Membership.UserIsOnlineTimeWindow e LastActivityDate appunto.
La soluzione a questo problema la trovate qui:
http://www.dotnet-friends.com/fastcode/sql/fastcodeinsqld7f4ebfa-dcc1-4f18-a073-3f3d10885207.aspx

Attenzione anche al metodo Membership.GetUser(username) o Membership.GetUser(providerUserKey), entrambi hanno un overload che consente di specificare se aggiornare LastActivityDate passando un bool userIsOnline.

Matteo Migliore.

Comments have been closed on this topic.