Microsoft Lightswitch, deploy di un’applicazione con autenticazione
Una delle features più interessanti di Lightswitch è la sua possibilità di effettuare il deploy direttamente sul server Web da cui poi sarà fruibile. Una comodità che fa piacere ai developer meno skillati, e che accelera il lavoro ai developer più esperti.
Il server Web può essere locale, all’interno della vostra LAN oppure esposto su Internet. In quest’ultimo caso, è necessario che il provider abbia installato tutti i pre-requisiti di Lightswitch. Come avevo citato nel mio primo post dedicato a Lightswitch, le possibilità di deploy messe a disposizione sono due:
- Deploy diretto da Visual Studio 2010
- Generazione in locale sul proprio PC un file di package (che non è nient’altro che un file zip), da importare sul server Web tramite la console IIS installata localmente sul proprio PC
Nel mio caso specifico, con www.winhost.com, sono obbligato a seguire la procedura (2). Non sto qui a scendere nel dettaglio: vi basti sapere che da VS2010 producete un file di package (.zip), che contiene tutti i files necessari per deployare l’applicazione: files, script SQL, parametri per la creazione dell’applicazione sotto IIS, etc. etc.
L’applicazione su cui sto lavorando per Brain-Sys fa utilizzo anche dell’autenticazione offerta dal Membership Provider. In questo caso, nel momento in cui effettuate l’installazione dell’applicazione su IIS, il wizard vi chiede, tramite una dialog dedicata, anche username & password dell’utente Administrator, per fare il primo login e procedere alla creazione degli altri utenti & ruoli, etc. etc. Per motivi che onestamente non siamo riusciti a capire, a me questa dialog non compare. Risultato? L’applicazione veniva deployata senza alcun problema, e raggiungendo il suo url (esempio: http://www.dominio.it/Nomeapp) appariva la form di login, ma non essendoci utenti configurati (ripeto: nemmeno l’Administrator) … difatto l’applicazione rimaneva inutilizzabile.
Ma abbiamo trovato una soluzione, spiegata in questo thread.
In pratica, tutta la struttura del database è ok: quello che manca è un bel record all’interno della tabella aspnet_Users (e qui ovviamente stiamo parlando di Membership Provider). Escludiamo a priori di aggiungere manualmente un record: non si fa, non si fa, non si fa. E quindi, cosa si fa? Semplice.
Se avete installato Lightswitch sul vostro PC, andate nella directory:
C:Program Files (x86)Microsoft Visual Studio 10.0LightSwitch1.0Tools
All’interno di questa directory trovate il file Microsoft.LightSwitch.SecurityAdmin.exe. E’ sufficiente eseguire da command-line questo comando…
Microsoft.LightSwitch.SecurityAdmin.exe/createadmin /user:Admin /password:pwd /fullname:Administrator /config:C:Documentiweb.config
…per ottenere il vostro utente Administrator. Qualche precisazione:
- /user:nome_utente (va specificato lo username dell’utente che volete creare)
- /password:password_utente (va specificata la password dell’utente che volete creare)
- /fullname:nome_completo (va specificato il nome completo dell’utente)
- /config:filepath (va specificato il percorso completo del web.config sul vostro PC, che contiene la stringa di connessione che punta al database che vi interessa)
Se il comando non vià segnala alcun errore, significa che l’utente Administrator è stato creato con successo. Potete loggarvi all’interno della vostra applicazione Lightswitch. Se fatta a dovere, la vostra applicazione vi mette a disposizione tutti gli strumenti per creare altri utenti, altri ruoli, e per effettuare l’assegnamento di ruoli ai singoli utenti.
Et voilà, problema risolto!