Technology Experience
.NET World

Lightswitch e la mancata autenticazione in produzione

Lasciate che vi racconti questo scenario, piuttosto realistico, dato che è quello che è successo a me.

Qualche settimana fa ho deployato su un server di produzione un’applicazione Lightswitch. L’applicazione utilizza la Forms Authentication, in modo tale che l’utente possa loggarsi, farsi riconoscere, lavorare e portare a termine i compiti che deve fare. Venerdì scorso ho aggiornato l’applicazione, solo che non ho voluto utilizzare la procedura di deploy prevista da Lightswitch, ma con un banalissimo ftp ho aggiornato e sovrascritto le varie componenti manualmente.

Mi riferisco a:

  • Varie dll proprietarie di Lightswitch
  • Dll esterne che utilizzo nella solution
  • XAP principale dell’applicazione

Fatto questo, bello soddisfatto, apro il browser, vado all’indirizzo dell’applicazione, e tutto pimpante mi aspetto di fare login.

Panico. Panico. L’applicazione Lightswitch NON mi chiede l’autenticazione, entro direttamente come ‘test user’, e posso fare tutto di tutto. Gestire anagrafiche, fare fatture, modificare e cancellare questo & quello.

Ora, un piccolo preambolo. Chi sviluppa con Lightswitch sa che quando si decide di attivare la Forms Authentication e si esegue l’applicazione da Visual Studio 2010, in realtà l’applicazione non chiede mai login. L’applicazione viene eseguita con un ‘test user’, le cui autorizzazioni vengono impostate in un pannello di proprietà del progetto stesso.

Nello screenshot qui sopra vedete il pannello. Lo si raggiunge aprendo le proprietà del progetto. Nel rettangolo violetto si attiva la Forms Authentication. Nel rettangolo arancione si attivano i ruoli che vogliamo attivare al ‘test user’: nel nostro codice, risulterà che ‘test user’ abbia quei permessi, e quindi l’interfaccia della nostra applicazione Lightswitch reagirà di conseguenza.

Arriviamo al dunque. Quello che è successo alla mia applicazione in produzione è che ha cominciato a comportarsi come se fosse eseguita da Visual Studio 2010, utilizzando l’utente ‘test user’. Niente login, login automatico con questo utente, tutti i permessi attivi.

A cosa è dovuto tutto ciò? E’ semplice. Andate nella cartella WebManifests e cancellate il file Microsoft.LightSwitch.Design.Server.Manifest.dll. Questo file si trova ovviamente nella binRelease dell’applicazione, sul vostro PC, ma non va copiata sul server di produzione. La prima volta che ho deployato in produzione ho utilizzato la procedura standard di Lightswitch; l’aggiornamento invece l’ho fatto a mano, copiando le dll, ma non sapendolo, ho copiato anche quella dll incriminata, e questo ha causato quel problema.

Tutto è bene quel che finisce bene!

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.