41 messaggi dal 09 gennaio 2012
sto provando ad aprire la soluzione con VS2013 express ma mi dice, nel report di conversione, che si e' verificato un errore.

"PortableAuthentication\PortableAuthentication.csproj: Impossibile trovare l'applicazione su cui si basa questo tipo di progetto. Per ulteriori informazioni, provare a utilizzare il collegamento seguente: http://go.microsoft.com/fwlink/?LinkID=299083&projecttype=786C830F-07A1-408B-BD7F-6EE04809D6DB"

Lancio comunque il debug del progetto e il browser mi segnala

"Impossibile caricare il file o l'assembly 'System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' o una delle relative dipendenze. Impossibile trovare il file specificato."

mi sono scordato qualcosa ?
20 messaggi dal 25 novembre 2006
Ciao,
sto seguendo con molto interesse questa discussione.
Io ho scaricato la soluzione e l'ho aperta con VS2013 UP1 Premium ed ha funzionato.
Ho un solo problema quando parte, la pagina iniziale è quella di login e non so che user e password usare ...

Grazie e ciao
59 messaggi dal 17 maggio 2010
Ciao a tutti,
@alvaropetro:
Per quanto riguarda la soluzione "PortableAuthentication" probabilmente la tua versione di VS non la supporta (anche se in teoria dovrebbe, ma non so esattamente quale sia per poterlo dare per certo), in ogni caso non è importante quel progetto, puoi semplicemente escluderlo dalla soluzione posizionandoti su esso e cliccando con il tasto destro, dopo scegli elimina (la cancella) o escludi dal progetto.
Per la libreria (l'altro errore) in realtà è anche un po colpa mia che non ho impostato come "copia localmente" la dll, questo perché nel pc nella quale ho sviluppato la soluzione ho installato i RIA service, quindi uso la copia locale. Puoi provare a cercare la libreria (System.ServiceModel.DomainServices.Hosting) tramite google, oppure se non dovessi trovarla appena possibile (forse più tardi) posso passartela direttamente. In ogni caso è possibile che incontri altre librerie (assembly) mancanti. Ti chiedo scusa per la dimenticanza. Altra soluzione sarebbe scaricare ed installare i RIA service nel pc. una volta ottenuta la dll fai tasto destro sulla cartella riferimenti (nel progetto interessato che in questo caso è quello "web") e scegli aggiungi riferimento (fallo per tutte quelle che hanno un simbolo di attenzione), poi scegli sfoglia e carichi la dll che hai scaricato. Se lo fai tu da solo sarebbe già un ottimo allenamento, se non dovessi riuscire potrei anche ri-postare tutta la soluzione compresa di librerie mancanti. P.S. per creare il primo utente vedi sotto.

@dcube:
in realtà il database è "vergine", quindi al momento non ci sono utenti. una possibile soluzione potrebbe essere quella di aggiungerlo tramite SQL Management studio (usa la connessione che trovi nel file config, ovvero: ".\SQLEXPRESS;Database=AutLib;Trusted_Connection=true;" quindi istanza ".SQLEXPRESS", database "AutLib" oppure il nome che preferisci dargli nel config) oppure tramite VS (in esplora server aggiungi una connessione al db).
Diversamente puoi aggiungere il codice seguente dentro la classe "Authentication" del progetto WEB.Entities :
protected override bool ValidateUser(string username, string password)
        {
            using (Model.Context context = new Model.Context())
            {
                context.Utenti.Add(new Model.Utente() { Name = "quelloCheVuoi", Password = "quellaCheVuoi",Nome="quelloCheVuoi",Cognome="quelloCheVuoi" });
                context.SaveChanges();
            }    
            return true;
        }

In pratica è un override che ti consente di aggiungere l'utente direttamente dal servizio di autenticazione quando chiamato a fare login. Puoi decidere se lasciarlo (in quel caso ti conviene mettere "return base.ValidateUser(username,password);", se no autorizzi tutti sempre se lasci true) ed utilizzarlo come "inizializzatore" (quando il db è "vergine"), oppure cancellare tutto il metodo dopo il primo utilizzo. Ovviamente se lo lasci fai in modo di controllare e farlo girare solo se non esistono altri utenti, diversamente scarti (oppure lo aggiungi solo se digiti utente e password uguali a quelli scritti nel codice, insomma vedi tu).


P.S.
Qualora siate interessati ad utilizzare il metodo con l'override per creare un utente di default, attualmente andrete a riscontrare un errore di login al primo "giro", questo perché in realtà il contesto è già caricato nella classe base, quindi dopo l'aggiunta non vede l'utente appena creato, la conseguenza è che dovreste fare una seconda chiamata per vederlo, oppure cambiate il codice postato sopra in questo modo :
protected override bool ValidateUser(string username, string password)
        {
            Model.Context context = (Model.Context)base._context;
            context.Utenti.Add(new Model.Utente() { Name = "quelloCheVuoi2", Password = "quellaCheVuoi2" });
            context.SaveChanges();
            return base.ValidateUser(username,password);
        }

In questo modo andate ad aggiungere l'utente alla stessa istanza creata nella base (quindi non una nuova come nel codice sopra), quindi non avete problemi neanche al primo login. Ma siccome la proprietà _context non è protected ma private, dalla classe derivata non "avreste" modo di accedere, quindi dovrete andare nel file AuthenticationBase.cs del progetto Authentication, e nella classe Authentication<TContext,Tuser> troverete questo :
IAuthenticationContext _context;

come vedete è "private" (non c'è scritto ma è di default se non diversamente specificato), quindi dovete aggiungere il modificatore "protected", quindi diventa :
protected IAuthenticationContext _context;

Il protected serve a poter far accedere ad un det. membro dalla classe derivata, diversamente non sarebbe accessibile da quest'ultima.
Bene, nel caso non conoscevate già l'utilità del protected, beh... mi pare un buon esempio per capire quando e perché usarlo. ;) inoltre avete l'opportunità di prendere confidenza anche con questa parte di codice.
Modificato da u235 il 30 ottobre 2014 21.44 -
41 messaggi dal 09 gennaio 2012
Ciao
allora, per risolvere il problema ho scaricato e istallato il RIA toolkit dal sito della microsoft.
In questo modo , andando a prelevare la dll System.ServiceModel.DomainServices.Hosting l'ho aggiunta ai riferimenti. Ma non ho trovato System.ServiceModel.DomainServices.server.
Dove la trovo ?
in rete ci sono dei siti di dubbia attendibilità che propongono di istallare di tutto. Non c'e' un sito attendibile ?
Intanto in questi giorni sto studiando knockoutJS per portarmi avanti.
La soluzione PortableAuthentication l'ho eliminata.
Poi mi segnala degli avvisi nella pagina index.html
<head runat="server">
dice che runat=server puo' essere solo in pagine asp.net.
e che un tag button non puo' avere al suo interno il tag <a>.
Apparte queste cose, non riesco a far partire il progetto per la mancanza delle dll in questione.
Ma sono necesarie , ho provato a eliminare i riferimenti ma non va lo stesso visto che vengono richiamate in piu' punti.
41 messaggi dal 09 gennaio 2012
ciao u235
se non sono troppo importuno qui, e' possibile scriverti in privato ?
la mia email e' alvapetron@gmail.com
o se preferisci via skype...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.