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

# re: Profile API ASP.NET: disabilitare LastActivityDate, quando non serve
Gravatar Ciao Matteo, ti scrivo in quanto leggendo il tuo articolo sul lastActivityDate mi sono accorto che il link che ha messo punta ad un'altra cosa... Volevo solo farti questa segnalazione.

Ciao!!
Left by Ricardo78 on 1/14/2012 11:08 AM
Comments have been closed on this topic.