Asp.net aspnetdb e Aruba

lunedì 12 ottobre 2009 - 10.10

riminese77 Profilo | Junior Member

Salve ragazzi,
so che questo argomento è stato trattato in vari forum e blog, ma sinceramente un buon articolo o un aiuto vero e proprio per i principianti come me non c'è... spero che con questo post si faccia chiarezza e si spieghino i passi per creare e gestire il database per le memebership di Asp.net su Aruba; magari allegando e spigando tutti i vari passi senza lasciar per scontato nulla.
Immagino anche che serva a molte persone.
Questo è un inizio del post se chi ha già una risposta completa a buon rendere :)
Premetto che si utilizza Visual Web Developer 2008.... può andare bene?
Grazie a tutti per la collaborazione.

martinez Profilo | Senior Member

Buongiorno!

Annoso problema quello del provider sul mantainer citato ... eccoti uno spunto da dove si può cominciare ... altrimenti chiedi pure

http://www.dotnethell.it/forum/messages.aspx?ThreadID=27135

Ciao
Antonio

riminese77 Profilo | Junior Member

Beh devo ammettere che per un principiante come me.... non sono riuscito ad applicare le procedure lette (questa che mi hai segnalato mi mancava). Possiamo fare uno step alla volta ?
Ho letto che prima bisogna modificare i moduli slq scaricati da internet e depositare le dll sul dominio.... non sipossono avere direttamente modificate?
In allegato ho messo il file creato per "penso" creare il database mdf su aruba.... ma continuano ad esserci le referenze per l'utente mdb...
Qualche info in più ? Grazie

martinez Profilo | Senior Member

Ciao!

Allora andiamo a realizzare sta membership "personalizzata"

il problema su ARUBA citato è dovuto principalmente al fatto che i provider microsoft hanno sia nelle classi che nel codice SQL il riferimento all'utente dbo che non è purtroppo l'utente che aruba fornisce per i propri db sql ... mentre ogni riferimento sui provider microsoft (storedprocedure o metodo .net) usa dbo.nomemetodo

come ovviare???

semplicemente sostituendo tutte le occorrenze dell'utente dbo sia dal codice che dal db

quindi il primo passo è quello di scaricare i sorgenti dei provider microsoft qui: (http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi)
installare il tutto -> aprire il progetto -> ricercare e sostituire tutte le occorrenzr della stringa dbo -> salvare il progetto -> compilare la dll e successivamente inserirla nei propri progetti ..

successivamente ricercare e sostituire tutte le occorenza dbo dal database del provider ... come fare? io uso il database publishing wizard per creare una storedprocedure completa del db comprensiva dei dati edito tale procedura in management studio ricercando ed eliminado tutti riferimenti all'utente dbo .... salvo l'sql corretto e lo carico su ARUBA ...

edito (finalmente) il mio web.config in modo tale che faccia riferimento al nuovo provider

e tutto fila liscio ....

in ogni modo se la vogliamo fare in diretta questa cosa sono a tua completa disposizione ...

ti allego un file config e la dll corretta

Antonio

riminese77 Profilo | Junior Member

Dunque io ho scaricato il tutto mi crea una cartella "programmi\asp.net provider ecc" ora li dentro c'è un progetto se lo apro mi apre solamente una pagina. Nella cartella invece esistono gli altri file che penso siano quelli giusti. In teroria apro quelli faccio una sostituzione di "dbo." e di "[db]." e con "" poi li salvo. ma per ricompliare il progetto?
Scusa ma non sono esperto :)

martinez Profilo | Senior Member

Ciao esattamente ...

per compilare la dll ... scegli il menu compila e la voce compila .....

ricordati che devi sostituire tutte le occorrenze dbo. sia sul codice che sul db ...

buon lavoro!

riminese77 Profilo | Junior Member

OK!!!!
Dopo vari tentativi ci son riuscito, il fatto è che mi apriva il progetto con tutti i vari Visual (basic, c++ ecc) tranne che con Visual Web!!! ora ho compilato la dll ProviderToolkitSampleProviders.dll poi l'ho copiata nella cartella Bin del mio progetto e su quella di Aruba.... poi?
Intanto grazie mille! :)

martinez Profilo | Senior Member

Ciao

Poi stesso lavoro per il database ...

crea una query per la creazione del db su aruba ad esempio con database publishing wizard ... la editi ed elimini anche qui le occorrenze [dbo] ... salvi e crei il db su aruba

poi editi il web.config per fargli "vedere" la modifica del provider su questo ti ho allegato già un file che puoi usare come esempio ...

fatto questo dovrebbe funzionare tutto!
Ciao!

riminese77 Profilo | Junior Member

Non ho visto il tuo file in allegato...
Però sono andato molto avanti! :)
Allora ho creato la StoreProcedure, che mi dava vari errori. Ho cancellato il valore [dbo]. mentre ho sostituito il valore dbo. con il Valore che mi ha dato aruba.
Ha dato vari errori, ma almeno le tabelle le ha create. Ora provo ad inserire i dati dentro alle tabelle con un'altra storeprocedure. Devo sostituire qualcosa?
Intanto grazie mille per la pazienza che hai! :)

martinez Profilo | Senior Member

Buongiorno!

il file allegato lo trovi nel mio secondo post a questo stesso thread ...

per quanto riguarda le stored procedure ... cosa stai usando e perchè ricevi errori?

inoltre se usi il daatabase publishing wizard che ti dicevo fa tutto lui ... ti crea una procedura sql con dentro tutto ... tabelle, dati e sp ...

editando il file generato usa trova e sostituisci in questo modo: cerca "[dbo]." e lo sostituisci con una stringa vuota finita questa operazione riusa il cerca e sostituisci con "dbo." cambiandolo anche qui con una stringa vuota ... poi salvi tutto, copi ed incolli su una nuova sp di aruba ... ed il gioco è fatto.

per il web.config attieniti al file allegato

Ciao!

riminese77 Profilo | Junior Member

OOOOOK :)
Sono riuscito ad importare tabelle e dati!!!! GRAZIE!!!
Allora la procedura che ho utilizzato io è quella base che hanno tutti, ma avendo Visual Web 2008, creavo col tasto destro la procedura Wizard, solo che omettevo il fatto che aruba usa Sql 2000 ne 2005 ne 2008 quindi le procedure che facevo erano esatte, ma con la versione errata!!! Che testina che ho . Ora più tardi verifico il collegamento :)

riminese77 Profilo | Junior Member

Ciao, ormai siamo agli sgoccioli :)
Volevo chiederti solo un ' ultima cortesia e qualche delucidazione...
Ti ho allegato il progetto, sia nella pagina Esempio che nella pagina di Login, non riesce a connettersi anche con i dati giusti . (posso inviarteli tramite mail così puoi fare delle prove, al max le cambio dopo :) )
Una volta fatte queste modifiche, facendo il classico tasto destro sul componente login e cliccando amministrazione, compariva su web l'interfaccia di amministrazione dell'intero progetto (sicurezza, login, tipo di autentificazione, utenti ecc ), ora non mi esce come posso gestire i permessi agli utenti ecc?
Un'ultima delucidazione, ora che è stato detto di identificare gli utenti tramite il nuovo db al sito... quello in locale (aspnetdb.mdf) lo posso anche cancellare....
Grazie cmq in anticipo

martinez Profilo | Senior Member

Ciao,
scusa se non rispondo celermente alle tue domande ma sono un pochino preso da altro ... prometto che studierò il tuo problema ... se non interviene nessuno prima di me e ti faccio sapere

a presto e scusa se non posso essere celere

Antonio

martinez Profilo | Senior Member

>Ciao, ormai siamo agli sgoccioli :)
>Volevo chiederti solo un ' ultima cortesia e qualche delucidazione...
>Ti ho allegato il progetto, sia nella pagina Esempio che nella
>pagina di Login, non riesce a connettersi anche con i dati giusti
>. (posso inviarteli tramite mail così puoi fare delle prove,
>al max le cambio dopo :) )

purtroppo io uso sql2005 è non posso aprire la tua applicazione perchè ricevo l'errore che non posso usaredb con versione 655 perchè uso la 612 ... (mai risolto sto problema) anche se ho installato sia sql2005 che 2008 ... boh! misteri!!!

gli errori che ricevi perchè tenti di usare un BD su aruba da locale??? questo è impossibile aruba consente l'utilizzo del propri db solo da pagine appartenenti al loro dominio ...

oppure se il db è in locale indica gli errori che ricevi e vediamo di capire meglio ....

>Una volta fatte queste modifiche, facendo il classico tasto destro
>sul componente login e cliccando amministrazione, compariva su
>web l'interfaccia di amministrazione dell'intero progetto (sicurezza,
>login, tipo di autentificazione, utenti ecc ), ora non mi esce
>come posso gestire i permessi agli utenti ecc?

hai cambiato il provider e quindi non credo che sia possibile (sempre in locale e mai su aruba) aprire la pagina di amministrazione ....
per gestire i permessi eccetera devi rifare tutto a manina ... ossia prevedere delle pagine da gestire in area protetta che fanno tutto questo da codice

>Un'ultima delucidazione, ora che è stato detto di identificare
>gli utenti tramite il nuovo db al sito... quello in locale (aspnetdb.mdf)
>lo posso anche cancellare....

il db locale serve per fare i test in locale e quindi va conservato per lo scopo e poi devi aggiornare da questo su aruba ...

>Grazie cmq in anticipo
ricorda che se serve sono qui ...

Ciao
Antonio

riminese77 Profilo | Junior Member

Ora faccio un po' di prove, cmq sei sempre stato celere.
A presto.

riminese77 Profilo | Junior Member

OTTTIMOO ora funziona!!!
ho cambiato il webconfig come in allegato.
Grazie mille per l'aiuto e spero che sia importante anche per altri.
Se si riuscisse a dire al programma che in locale utilizzi il Db aspenetdb.mdf sarebbe un affarone, perchè continuerebbe a funzionare e non ci sarebbe bisogno di due file config uno per Aruba ed uno per testarlo in locale.
Per le regole di sicurezza non è un problema, quelle si scrivono in pochi minuti.

martinez Profilo | Senior Member

>OTTTIMOO ora funziona!!!

Complimenti per la buona riuscita del tuo lavoro!!!

>ho cambiato il webconfig come in allegato.
>Grazie mille per l'aiuto e spero che sia importante anche per
>altri.
Di nulla è un piacere!

>Se si riuscisse a dire al programma che in locale utilizzi il
>Db aspenetdb.mdf sarebbe un affarone, perchè continuerebbe a
>funzionare e non ci sarebbe bisogno di due file config uno per
>Aruba ed uno per testarlo in locale.
beh! io uso la stessa connectionString ... duplicata 2 volte ... una per il db locale e l'altra per il dominio ... e semplicemente mi limito a "coomentare" le righe che non servono ... se lavoro in locale commento le righe per il dominio e viceversa (spero di essermi spiegato) ...
quindi un unico file ma con commenti dedicati

>Per le regole di sicurezza non è un problema, quelle si scrivono
>in pochi minuti.
>

buon lavoro allora!

riminese77 Profilo | Junior Member

Ciao,
ti inserisco il link secondo me molto importante per la creazione dello stesso webconfig per lavorare sia in locale che in remoto, importante per molti.
http://www.francescocamarlinghi.com/it/web-development/cambiare-la-stringa-di-connessione-di-un-provider-tramite-codice/

ho provato, ma non sono riuscito a farlo, tu sicuramente hai più esperienza di me, se riesci son qui :)

Ciao a presto.

martinez Profilo | Senior Member

Eccomi ...

quello che vuoi fare sembrerebbe a posto anche se io non ho mai provato

del resto è semplice ... creare due connessioni una per la produzione e l'altra per il debug allora vediamo dal tuo web.config che:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

generate le stringhe di connessione valide mi creo il mio bel global.asax (scusa se te lo posto in c# ma non conosco vb ...

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

fatto tutto questo diciamo che siamo a posto tranne che per una piccola accortezza ... tu usi 2 DB uno per i provider ed uno per i tuoi dati ...
adesso accorpiamo il tutto in un unico db ... e stiamo a posto

chiudi il tuo VS
apri SQL Managment Studio
fai l'attach del tuo db "DatiFrequenti"
chiudi SQLMS
...
ti sposti sulla tua cartella C:\Windows\Microsoft.NET\Framework\v2.0.xxxx e da qui lanci l'applicazione: aspnet_regsql ...
scegli configura sql server per i servizi applicativi -> avanti
alla voce server inserisci il valore per collegarsi alla tua istanza sql
ed alla voce database scegli il tuo DB DatiFrequenti "
vai avanti con il wizard fino alla fine

riapri SQLMS e "deattachi" il tuo db ...
riapri VS e ricostruisci i tuoi utenti ed i ruoli associati ...

pubblica il tutto come visto finora ed il gioco è fatto !!!

spero di essere stato chiaro ...

Antonio
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5