Peppe Pace

Utilizzare SqlRoleProvider, SqlMembershipProvider e SqlProfileProvider su hosting Aruba

with 107 comments

Supponiamo che avete realizzato un’efficientissima e bellissima webapp che utilizza i sopraelencati provider e che adesso vogliate pubblicarla sullo spazio che avete acquistato presso Aruba. Effettuate l’FTP dei file, caricate il database sul server Ms SQL di Aruba, fate le necessarie modifiche al web.config e provate a visualizzare il sito. Risultato? Un errore mai visto prima appare sul vostro schermo:


Could not find stored procedure ‘dbo.aspnet_CheckSchemaVersion’. Descrizione: Eccezione non gestita durante l’esecuzione della richiesta Web corrente. Per ulteriori informazioni sull’errore e sul suo punto di origine nel codice, vedere l’analisi dello stack.
Dettagli eccezione: System.Data.SqlClient.SqlException: Could not find stored procedure ‘dbo.aspnet_CheckSchemaVersion’.


Cosa è successo? Nulla di irrecuperabile, ma abbastanza fastidioso. L’implementazione di Microsoft dei tre provider ha, sia nelle classi che nel codice SQL, “embeddato” il riferimento all’utente dbo, che sicuramente non è l’utente che Aruba vi ha fornito per accedere al loro server MS SQL. Come ovviare alla cosa allora? Basta seguire alcuni semplici passi:

  • Scaricate da qui i sorgenti dei tre provider
  • Rimuovete dai sorgenti tutti i riferimenti all’utente dbo con il semplice ma efficace Trova&Sostituisci
  • Compilate i sorgenti così da avere a disposizione un nuovo assembly ovvero ProviderToolkitSampleProviders.dll
  • Copiate l’assembly nella directory Bin della vostra webapp
  • Nel web.config nella riga corrispondente alla definizione di ognuno dei tre provider sostituite il contenuto dell’attributo type con il seguente : “Microsoft.Samples.<Nome_della_classe_del_provider>, ProviderToolkitSampleProviders”
  • Esportate gli script di viste e stored procedure, dal vostro db in locale, relative ai tre provider e rimuovete anche in questi script ogni riferimento all’utente dbo.
  • Sostituite con questi nuovi script le viste e le stored procedure presenti sull’hosting di Aruba
  • Non dimenticate di copiare i record contenuti nella tabella aspnet_SchemaVersions dal vostro db a quello su Aruba

Fatto tutto ciò potrete godervi la vostra applicazione web.

Annunci

Written by Peppe Pace

lunedì 5 marzo 2007 a 21:18

Pubblicato su .NET, Guida, Sviluppo

107 Risposte

Subscribe to comments with RSS.

  1. ciao,
    mi ritrovo ad essere nella stessa situazione che hai descritto, ma di quello che hai descritto solo il primo passo ho ben capito (quello di scaricare il toolkit) … ma poi che devo fare??

    Salvo

    domenica 25 marzo 2007 at 13:07

  2. Ciao Salvo, io che speravo di essere stato chiaro, proverò ad esserlo adesso. Dunque una volta scaricati i sorgenti dei provider, devi aprire il progetto che si trova in X:\Programmi\ASP.NET Provider Toolkit SQL Samples\ e modificare le classi rimuovendo dalle chiamate alle store procedure il riferimento all’utente dbo, ovvero se prima la riga di codice era così

    SqlCommand cmd = new SqlCommand("dbo.aspnet_Membership_CreateUser", holder.Connection);

    dopo diverrà così:

    SqlCommand cmd = new SqlCommand("aspnet_Membership_CreateUser", holder.Connection);

    Fatto ciò ricompila il progetto e copia la dll risultante nella directory Bin della tua applicazione web.
    Poi tocca alle modifiche al Web.Config dove al posto dei provider “originali” devi fare riferimento a quelli compresi nel nuovo assembly e per fare ciò devi modificare le righe relative ai provider. Per esempio:

    <membership defaultProvider="MioMembershipProvider">
    <providers>
    <add connectionStringName="db" enablePasswordRetrieval="false" enablePasswordReset="false" requiresUniqueEmail="false" requiresQuestionAndAnswer="false" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" applicationName="MiaApplicazione" passwordFormat="Hashed" name="MioMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    </providers>
    </membership>

    Diventa:

    <membership defaultProvider="MioMembershipProvider">
    <providers>
    <add connectionStringName="db" enablePasswordRetrieval="false" enablePasswordReset="false" requiresUniqueEmail="false" requiresQuestionAndAnswer="false" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" applicationName="MiaApplicazione" passwordFormat="Hashed" name="MioMembershipProvider" type="Microsoft.Samples.SqlMembershipProvider, ProviderToolkitSampleProviders"/>
    </providers>
    </membership>

    Fatte queste modifiche tocca a quelle al database, ma spero che quelle ti siano più chiare.

    Se dovessi avere altri problemi fammi sapè

    Giuseppe Pace

    lunedì 26 marzo 2007 at 10:45

  3. Sono giorni e giorni che traffico decine di pagine web per cercare documentazione su come far funzionare il maledetto SqlMembershipProvider su Aruba.
    La tua soluzione è finalmente chiarissima e perfetta.
    Un MegaGrazie per la disponibilità.
    Finalmente potrò cominciare a vendere la mia verdura biologica anche su web… http://www.ilciottolo.it/Default.aspx

    Alberto

    Alberto Paganuzzi

    domenica 1 aprile 2007 at 16:03

  4. Sono contento di esserti stato utile. Buone vendite.
    PS: ma mi fai lo sconto a me??? hihihihi
    Scherzo 😉

    Giuseppe Pace

    domenica 1 aprile 2007 at 16:17

  5. Ciao,
    dopo avere letto il tuo articolo ho voluto provare a modificare e a ricompilare i provider.
    Non avevo una applicazione web a disposizione, ma ho preso uno starter kit e ho provato ad adattarlo per auba secondo le tue istruzioni.
    Purtroppo non riesco a farlo funzionare. Tutt’ora il risultato è una eccezione di sicurezza.
    Di “diverso” da una applicazione web c’è:
    la cartella bin non esiste e quindi non riesco a capire come faccia a trovare la dll creata;
    esistono due riferimenti ai provider nel file web.config e non tre.
    Mahhh mistero!

    ciao
    alberto

    Alberto Pini

    giovedì 26 aprile 2007 at 17:54

  6. Ciao Alberto,
    quale starter kit hai utilizzato e quale sarebbe l’errore? Senza queste informazioni è difficile aiutarti.
    Se la cartella Bin non esiste creala e metti lì il nuovo assembly, non è obbligatorio dichiarare tutti i provider, probabilmente lo starter kit che hai utilizzato ne usa solo due.

    Buon lavoro
    Peppe

    Giuseppe Pace

    giovedì 26 aprile 2007 at 18:52

  7. Ciao e grazie della replica.
    Lo starter kit è Classifieds web starter kit.La cartella bin non esiste e l’ho creata e ci ho messo dentro la dll creata come hai documentato tu.(Sperando di aver fatto bene).
    Il file web.config è stato modificato da così:

    a così:

    , Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

    I provider sono 2.
    L’errore che salta fuori è:

    Security Exception
    Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application’s trust level in the configuration file

    Se vuoi ulteriori informazioni per darmi un aiuto…

    Grazie di nuovo e saluti
    ciao ciao
    alberto

    Alberto

    giovedì 26 aprile 2007 at 22:43

  8. Ops ha perso i dati del web.config
    Da così:

    a così:

    Alberto

    giovedì 26 aprile 2007 at 22:50



  9. Alberto

    giovedì 26 aprile 2007 at 22:57

  10. Ciao… Grazie per il tuo post che ho seguito alla lettera ma….
    adesso ho un problema nuovo.

    Ho scaricato i sorgenti del mmebership e Role provider.
    Ho cancellato qualsiasi riferimento a dbo
    Ho ricompilato in una dll che ho poi referenziato nell’applicazione web.
    Ho ovviamente trasferito tutto il db necessario dal sqlserver locale a quello su Aruba.
    in locale funziona tutto bene.
    Su Aruba si inchioda sul Web.Config, e mi dice “Request failed.” alla sezione:

    Da cosa può dipendere?
    Qualcuno potrebbe darmi una mano?
    Grazie e mille.
    Claudio

    Claudio

    domenica 6 maggio 2007 at 15:28

  11. Ciao Claudio,
    ho fatto una ricerca su google con il messaggio d’errore ma non ho trovato nulla di utile. Ho confrontato la stringa colpevole dell’errore con la corrispondente del mio web.config e l’unica differenza riscontrata è che nella tua manca l’attributo applicationName ma mi pare difficile che questo sia il problema. Ti invito a mandarmi via mail il tuo web.config cosi posso “studiarlo” nella sua interezza.

    Buona domenica

    Peppe

    Giuseppe Pace

    domenica 6 maggio 2007 at 15:58

  12. Ciao,
    da quanto ho letto in molteplici post a giro nella rete, aruba da qualche mese, se non sbaglio da novembre 2006, ha alzato il livello di sicurezza da full-trust a medium trust. Questo (a quanto ho capito) comporta che alcune applicazioni web che giravano su aruba non girano più. Questo per ragioni di sicurezza. Il CAS blocca anche la procedura di autenticazione modificata nel modo di Giuseppe.
    Occorre pertanto includere l’attributo in una classe sorgente del ProviderToolkitSampleProviders. Tutto questo per aggirare il problema di sicurezza. Successivamente compilare e fare il merge degli assembly utilizzando Web Application Projects che include un plug in in visual studio 2005 oppure da linea di comando. E questo per avere un assembly solo.
    Io ci ho provato ma non ci sono riuscito e non capisco il perchè.
    L’errore che mi restituisce è che non riesce a caricare il provider, nel mi caso ‘Microsoft.Samples.XmlSiteMapProvider’ dall’assembly.

    Parser Error Message: Could not load type ‘Microsoft.Samples.XmlSiteMapProvider’ from assembly ‘ProviderToolkitSampleProviders’.

    saluti
    alberto

    Alberto

    giovedì 10 maggio 2007 at 10:18

  13. Salve Giuseppe,
    ho seguito tutti i passi da te descitti, ma alla fine mi da un errore che non riesco a risolvere. Ti mando il mio web.config visto che l’errore è li. Cmq se vai nel sito, nella sezione news puoi vedere l’errore. Ti ringrazio, spero che riuscirai ad aiutarmi!!!

    — WEB.CONFIG —

    L’errore è proprio qui:

    Andrea

    giovedì 10 maggio 2007 at 17:07

  14. Andrea

    giovedì 10 maggio 2007 at 17:08

  15. SCUSA MA NON MI FA FARE IL COPIA INCOLLA…CMQ NEL SITO TROVI L’ERRORE…GRAZIE…

    Andrea

    giovedì 10 maggio 2007 at 17:08

  16. @Alberto: la procedura che ho descritto per risolvere il problema con i provider l’ho testata dopo il novembre 2006 (dicembre 2006/gennaio 2007), non ho avuto alcun problema e tutt’ora funziona quindi non credo che sussita il problema da te descritto.

    @Andrea: il tuo problema è lo stesso di Claudio, per cui non conosco attualemente la soluzione, potresti mandarmi il tuo web.config via mail?

    Buon lavoro a tutti

    Giuseppe Pace

    giovedì 10 maggio 2007 at 17:26

  17. Ciao di nuovo.
    Beh… allora sto sbagliando qualcosa io.
    Per capire meglio…
    Ho installato un semplice starter kit su aruba (ad. esempio il personal starter kit) dopo avere modificato i sorgenti dei tre provider secondo le precise tue indicazioni, e modificato il web.config, ed effettuate le opportune operazioni sul db sqlserver in remoto.
    Pensi che la procedura di autenticazione o il richiamo di una semplice pagina funzioni?
    Quando effettui la compilazione dei sorgenti dei provider firmi l’assembly? Effettui qualche operazione particolare nelle proprità oppure generi seemplicemente l’assembly?
    In fase di deploy del sito effettui la precompilazione?
    ciao e scusa il disturbo.
    alberto

    Alberto

    giovedì 10 maggio 2007 at 18:57

  18. Ciao Alberto,
    rispondo alle tue domande e aggiungo qualcosa di mio:
    – la mia webapp non è uno starter kit ma codice tutto scritto da me
    – non firmo l’assembly;
    – non modifico nessuna proprietà della soluzione fornita con il ASP.NET Provider Toolkit SQL Samples tranne che passare da Debug a Release come tipo di configurazione, ma avevo fatto una prova con l’impostazione a Debug e aveva funzionato lo stesso;
    – nel fare il deploy non faccio la precompilazione;
    Le modifiche le faccio aprendo la soluzione e non il progetto.
    Questo è quanto, spero di esserti stato utile.

    Buon lavoro

    Giuseppe Pace

    giovedì 10 maggio 2007 at 19:43

  19. Giuseppe dammi la tua email che ti mando subito il web.config, ovviamente ti ringrazio!!!

    Andrea

    venerdì 11 maggio 2007 at 15:40

  20. Eureka!!! L’errore Request Failed lamentato da Andrea e Claudio sembra essere dovuto alla mancanza dell’attributo applicationName nella definizione del RoleProvider. Aggiungetelo e tutto andrà a posto.

    Esempio:


    <add name="MySqlRoleProvider" type="Microsoft.Samples.SqlRoleProvider, ProviderToolkitSampleProviders" connectionStringName="db1" applicationName="test"/>

    Giuseppe Pace

    venerdì 11 maggio 2007 at 16:57

  21. Scusate..

    ma in che modo va ricompilato il progetto per poi copiare la dll risultante nella directory Bin dell’applicazione web ?

    Si può fare con Visual Web Developer 2005 Express Edition ?

    Non so come si crea una dll…

    Grazie in anticipo

    Alessandro

    sabato 12 maggio 2007 at 15:18

  22. Allora Giuseppe, intanto ti ringrazio infinitamente visto che quel problema è stato risolto perfettamente!!! Adesso pero ho un altro problema e mi chiedevo se magari potevi darmi una mano…allora, mi dice:
    The Microsoft.Sample.SqlMembershipProvider requires a database schema compatible with schema version ‘1’. However the current database schema is not compatible with this version. You may need to either install a compatible schema with aspnet_regsql.exe, or upgrade the provider to a newer version.
    (Cmq se vuoi nel sito dopo aver inserito un nuovo utente puoi vedere l’errore tu stesso)
    Non vorrei aver sbagliato l’esportazione dello script da importare sul database di aruba. Io l’ho fatto esportando le tabelle, le stored procedures e tutto il resto con SQL Server Management Studio Express. Considera che non uso i profile ma utilizzo i ruoli e gli oggetti gia esistenti in VS2005 tipo Login etc (non so se puo esserti di auito, cosi magari posso non esportare qualcosa…che non utilizzo).
    Ti ringrazio come sempre per la disponibilita!

    Andrea

    sabato 12 maggio 2007 at 16:41

  23. Ciao Andrea,
    mi sa che hai saltato l’ultimo punto della mia mini guida. Nella tabella “aspnet_SchemaVersions” del tuo database in locale saranno presenti alcuni record che devi necessariamente copiare nella rispettiva tabella presente sul database online. Fatto ciò tutto dovrebbe tornare a funzionare.

    Buon lavoro

    Peppe

    Giuseppe Pace

    lunedì 14 maggio 2007 at 10:24

  24. C’e’ qualcuno che risponde alla mail di Alessandro, per favore? Sono le stesse identiche domande che avrei voluto fare io.

    Grazie mille in anticipo.

    Fabio

    lunedì 28 maggio 2007 at 12:30

  25. Ciao Giuseppe,
    ho seguito la tua mini guida,ma continua a darmi questo errore:Exception Details: System.Data.SqlClient.SqlException: Invalid object name ‘dbo.aspnet_SchemaVersions’.
    Se puoi aiutarmi..

    runner17

    martedì 19 giugno 2007 at 10:27

  26. Ciao runner17,
    dall’errore che hai riportato sembra che la rimozione dell’utente dbo dalle query codificate nell’assembly non sia completo, infatti l’applicazione va in errore cercando ancora dbo.aspnet_SchemaVersions. Ricontrolla il codice e vedrai che troverai l’errore.

    Buon lavoro

    Giuseppe Pace

    martedì 19 giugno 2007 at 10:37

  27. Innanzitutto grazie per la risposta,ho ricontrollato e sembra tutto corretto,penso che l’errore dipenda dal web.config,mi permetto di mandartene una parte :

    runner17

    martedì 19 giugno 2007 at 11:18

  28. runner17

    martedì 19 giugno 2007 at 11:19

  29. Se il riferimento non è nel codice dell’assembly allora c’è ancora qualche riferimento all’utente dbo nelle stored procedure relative ai provider. Controlla quelle

    Giuseppe Pace

    martedì 19 giugno 2007 at 11:26

  30. Avevi proprio ragione avevo scordato un dbo. nella procedura grazie mille.Approfitto per farti un altra domanda(tieni conto che sono un novizio :-))Ho creato un sito partendo da uno starter kit,ho portato l’aspnetdb express dentro il mio db mysqlserver 2005,e ho riportato anche con delel insert into,i ruoli e utenti che avevo creato con tool:”Configurazione di aspnet”però probabilemnte qualcosa non è andato eprche quando mi loggo non mi riconosce:ecco le domande:è possibile allacciarsi in remoto al db di aruba?
    cioè dalla mia applicazione in locale.Seconda domanda,è possibile utilizzare :”Configurazione di aspnet” sul db che ho messo su aruba?credo che siano domande utili un pò a tutti..grazie ancora…

    runner17

    martedì 19 giugno 2007 at 14:40

  31. Ahimè i server sql di aruba non sono raggiungibili e quindi gestibili da locale. Sarebbe comodissimo gestire il proprio db da SQL Server Management Studio e invece non si può.

    Giuseppe Pace

    martedì 19 giugno 2007 at 17:03

  32. Ciao Giuseppe
    hai curato l’argomento in maniera molto precisa ed utile, ma non riesco ancora a far funzionare il tutto. Ho provato a crearmi in locale il mio DB con lo script privato di tutti i riferimenti a dbo. Ho fatto il restore su aruba ed ho notato che non funziona. Ho provato ad esaminare il problema ed ho notato che nelle stored procedure il “dbo.” non era scomparso da tutto. Ho provato poi ad inserire tramite panello di controllo manualmente gli script ma ho problemi di permesso.
    Hai gentilmente dei suggerimenti? Grazie mille

    Xeperson

    giovedì 28 giugno 2007 at 12:08

  33. Ciao,
    se l’errore è questo:
    EXECUTE permission denied on object ‘aspnet_CheckSchemaVersion’, database ‘xxxxxxxxx’, schema ‘dbo’.
    vuol dire che da qualche parte c’è ancora qualche riferimento all’utente dbo.
    Quindi ti invito a controllare per bene che il riferimento all’utente dbo non sia più presente:
    – nel codice dell’assembly;
    – nelle stored procedure relative al provider;
    – nelle viste relative al provider;

    Buon lavoro

    Giuseppe Pace

    giovedì 28 giugno 2007 at 13:23

  34. Ciao Giuseppe, devo ringraziarti perchè in poche ore seguendo queste pagine ho proseguito nella configurazione del mio sito più che nelle ultime settimane.
    Sono partito da uno stater kit e seguendo le tue istruzioni ho impostato correttamente il database. Ora riesco a creare online un utente ma senza la “Configurazione di aspnet” non riesco a creare il ruolo di amministratore e assegnarvici l’utente. Come posso fare per esportare il contenuto delle tabelle nel mio database locale e importare nel MSSQL di Aruba?
    Grazie anticipate!

    Christian

    giovedì 28 giugno 2007 at 19:23

  35. Ciao Christian,
    per esportare i dati presenti sul tuo database locale e importare i dati sul db di aruba ti consiglio di scaricare e usare l’utilissimo SQL-Scripter. Con esso puoi creare direttamente gli script SQL con le giuste INSERT che poi puoi eseguire nel pannello di controllo di Aruba.

    Buon lavoro

    Peppe

    PS: e il sito qual è?

    Giuseppe Pace

    giovedì 28 giugno 2007 at 20:21

  36. Ciao Giuseppe! Ho prontamente seguito il tuo consiglio, ho creato i file csv ma utilizzando la procedura guidata import CVS di Aruba ottengo questo messaggio: Conversion failed when converting from a character string to uniqueidentifier
    In realtà avevo già cozzato contro qualcosa del genere: questo pomeriggio ho provato ad inserire manualmente nel db di aruba i record facendo copia e incolla dei valori ma i valori contenuti nei campi uniqueidentifier non sono riuscito ad importarli….
    il sito è http://www.osalsolaro.it dovrai puntare direttamente a default.aspx per vedere qualcosa, anche se attualmente il css del sito è solo abbozzato (ha meno priorità del funzionamento del database)
    Hai dei nuovi suggerimenti da darmi?

    Christian

    giovedì 28 giugno 2007 at 21:28

  37. Ciao Christian,
    invece di creare i file cvs, fatti generare gli script con gli INSERT da eseguire direttamente nel pannello di controllo e non i CVS, così dovrebbe funzionare.

    Peppe

    Giuseppe Pace

    giovedì 28 giugno 2007 at 21:54

  38. Infatti funziona! Ti ringrazio ancora. A Settembre torna a visitare il mio sito, sarà in ordine anche dal punto di vista grafico. Ciao!

    Christian

    venerdì 29 giugno 2007 at 10:23

  39. Sono contento di esserti stato utile. Sicuramente tornerò a visistare il tuo sito. Buon lavoro

    Peppe

    Giuseppe Pace

    venerdì 29 giugno 2007 at 11:39

  40. Ciao Giuseppe,
    grazie innanzitutto per queste dritte utilissime.
    Ho seguito tutta la procedura con grande tranquillità, adesso riesco a dialogare con il db e a creare gli utenti, ma quando provo ad accedere ad un’area riservata salta fuori questo errore:

    “The SSE Provider did not find the database file specified in the connection string. At the configured trust level (below High trust level), the SSE provider can not automatically create the database file.”

    Che diavolo può significare? Sto facendo qualche ricerca ma per adesso niente.
    Grazie ancora

    Luigi

    martedì 7 agosto 2007 at 16:42

  41. Ciao Luigi,
    sono contento di esserti stato d’aiuto. Per quanto riguarda l’errore che mi hai segnalato, ad interpretare letteralmente il messaggio di errore sembra che ci sia qualcosa che non va nella stringa di connessione al database. Verifica la correttezza della stringa di connessione e verifica che l’attributo connectionStringName del provider punti alla giusta stringa di connessione.

    Giuseppe Pace

    martedì 7 agosto 2007 at 17:50

  42. Ciao Peppe,
    grazie per la tempestiva risposta.
    Continuo a non venirne a capo, perché la connessione sembra ok dal momento che il wizard di creazione user riesce a scrivere nella tabella membership e users…
    ho attivato la modalità debug, e ho notato che l’errore si manifesta in due punti:
    al momento della creazione dell’utente ho un evento OnCreatedUser=”CreateUserWizard1_CreatedUser” che contiene questa istruzione: Roles.AddUserToRole(CreateUserWizard1.UserName, “users”);
    ecco questa genera l’errore (ma il nuovo user viene scritto nel database! tranne ovviamente la tabella UsersInRole)

    quando accedo una pagina riservata ai soli users, quindi con nel config:

    l’errore viene presentato tramite uno stack trace di questo tipo:

    [ProviderException: The SSE Provider did not find the database file specified in the connection string. At the configured trust level (below High trust level), the SSE provider can not automatically create the database file.]
    System.Web.DataAccess.SqlConnectionHelper.EnsureSqlExpressDBFile(String connectionString) +2555237
    System.Web.DataAccess.SqlConnectionHelper.GetConnection(String connectionString, Boolean revertImpersonation) +87
    System.Web.Security.SqlRoleProvider.GetRolesForUser(String username) +771
    System.Web.Security.RolePrincipal.IsInRole(String role) +272
    System.Web.Configuration.AuthorizationRule.IsTheUserInAnyRole(StringCollection roles, IPrincipal principal) +120
    System.Web.Configuration.AuthorizationRule.IsUserAllowed(IPrincipal user, String verb) +300
    System.Web.Configuration.AuthorizationRuleCollection.IsUserAllowed(IPrincipal user, String verb) +191
    System.Web.Security.UrlAuthorizationModule.OnEnter(Object source, EventArgs eventArgs) +3511274
    System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64

    ciao e grazie

    Luigi

    martedì 7 agosto 2007 at 20:48

  43. volevo aggiungere che riesco persino a cambiare la password tramite il controllo apposito…

    Luigi

    martedì 7 agosto 2007 at 20:53

  44. ancora io…
    diciamo che ho capito: allo stesso modo in cui si implementa un custom mebership provider va implementato un custom role provider.
    infatti quando ho disabilitato la gestione dei ruoli tutto va alla perfezione. adesso sto provando a implentare sto benedetto role provider… vedremo!

    Luigi

    mercoledì 8 agosto 2007 at 11:46

  45. Evvvaiiiiiii!!! Risolto! Sono un mezzo pirla 😀
    Ovviamente ProviderToolkitSampleProviders.dll implementava già il SqlRoleProvider… quindi tutto il trucco e inserire questa sezione aggiuntiva nel web.config (metto gli asterischi altrimenti wp non fa passare il codice)

    *roleManager defaultProvider=”CustomRoleProvider”
    enabled=”true”
    cacheRolesInCookie=”true”
    cookieName=”.ASPROLES”
    cookieTimeout=”30″
    cookiePath=”/”
    cookieRequireSSL=”false”
    cookieSlidingExpiration=”true”
    cookieProtection=”All” *
    *providers*
    *clear /*
    *add
    name=”CustomRoleProvider”
    type=”Microsoft.Samples.SqlRoleProvider, ProviderToolkitSampleProviders”
    connectionStringName=”conn1″
    applicationName=”/”
    /*
    */providers*
    */roleManager*

    Grazie per lo spazio concessomi, spero che questa soluzione possa tornare utile a qualcun’altro.
    Ciao Peppe complimenti ancora per il blog.

    Luigi

    mercoledì 8 agosto 2007 at 12:01

  46. Ecco risolto un altro problema, bravo Luigi! Certo però che se avessi letto un attimino più attentamente il post originale ti saresti accorto che ogni singolo provider va configurato “a parte” 😛 😛 o forse non è chiaro????? Se è così dimmelo che cerco di correggere.
    Sono comunque sicuro che la tua soluzione sarà utile a molti, ho notato che questo errore è alquanto diffuso.
    Grazie per i complimenti, spero di riuscire a continuare così. Buona estate.

    Peppe

    Giuseppe Pace

    mercoledì 8 agosto 2007 at 12:37

  47. Grazie veramente di tutto. Seguendo i tuoi consigli sono riuscito a usare il database correttamente. e pensare che mi ero già riscritto buona parte dei controlli di login e stored procedure. Appena creerò una sezione ringraziamenti avrei piacere di postare il link a questo blog se x te va bene. Ancora grazie.

    Cardy

    venerdì 17 agosto 2007 at 2:15

  48. Ciao,
    innanzi tutto vorrei complimentarmi per come pieghi le magliette.. Penso che d’ora in poi lo farò anche io.
    Vengo al dunque:
    Per numerosi motivi mi sono trasferito con il mio sito dotnetnuke da Aruba a Webhost4life.
    Appena effettuato il trasferimento del dominio sono iniziati i problemi con il mio database:
    -in pratica sia effettuando il login che facendo una nuova registrazione mi dava l’errore Could not find stored procedure ‘aspnet_CheckSchemaVersion’. Mentre dopo la sostituzione che ha effettuato il provider (perchè non sono capace..) e cioè aspnet_CheckSchemaVersion da MSSql17442 a dbo l’errore è cambiato in Invalid object name aspnet_SchemaVersions. Andando a vedere un pò in giro per la rete sono incappato in questo:
    http://forums.asp.net/p/1019728/1474500.aspx , alchè ho pensato che potrebbe essere il mio problema (la presenza o meno della s finale). Cosa ne pensi?
    – Altra domanda: all’inizio l’help desk di wh4l mi dicevano che dovevo cambiare mssql17442.GetPortalAliasByPortalID in dbo.GetPortalAliasByPortalID così come aspnet_CheckSchemaVersion in dbo.aspnet_CheckSchemaVersion. Devo farlo in locale? uso Microsoft SQL Management studio express?. Ho già effettuato una prima connessione con il database con -Ms SQL M s.e.- ma non trovo niente di quello che devo cambiare..
    Grazie in anticipo,
    Marco
    Scusa per il discorso mooolto allungato, ma spero di essermi spiegato.

    Marco

    sabato 25 agosto 2007 at 17:25

  49. Scusate la domanda banale.

    Ho ricompilato i file sorgenti eliminando ogni riferimento a dbo.

    Adesso dovrei modificare il database. ma mi spiegate cm cavolo si fa? non riesco a modificarlo. da sql server management studio express prendo una qualsiasi procedura, funzione ecc ed elimino i riferimeti a dbo. ma non mi permette di salvarla e ripristina tutto allo stato iniziale.
    A cosa è dovuto?

    Alex

    martedì 28 agosto 2007 at 12:59

  50. Grande ho risolto grazie a te!!!

    diego

    giovedì 30 agosto 2007 at 20:43

  51. salve,

    Complimenti per le informazioni e la disponibilità che dimostri. Penso di essere il + inesperto fra quelli che ho letto.

    Addirittura mi trovo in difficoltà con i provider.

    Ho scaricato il file da te indicato, l’ho eseguito, ma non trovo, nella cartella in cui ho effettuato l’installazione, alcun file.
    Forse devo vedere da qualche altra parte?

    scusa per le mie poche conoscenze

    ciao
    Gaetano

    Gaetano

    giovedì 13 settembre 2007 at 16:49

  52. Ciao Peppe e complimenti per il blog, avrai sicuramente aiutato un sacco di clienti di aruba… ora vediamo se ne riesci ad aiutare un’altro 🙂

    Allora prima di cominciare a lavorare su Aruba lessi il tuo blog per cui mi sono creato un SQLMembershipProvider…

    Solo che andato ad uploadare i file e il web.config… da errore:

    Parser Error Message: Could not load type ‘SQLMembershipProvider’.

    Source Error:

    Line 75:
    Line 76: <add name=”SQLMembershipProvider”
    Line 77: type=”SQLMembershipProvider”
    Line 78: requiresQuestionAndAnswer=”true”
    Line 79: ConnectionString=”Data Source=62.xx;User ID=MSSqlxx;Password=xx;database=MSSqlxx”

    Ciao Peppe
    Daniele

    Daniele

    mercoledì 19 settembre 2007 at 23:40

  53. Questo post ha sempre più successo, non me l’aspettavo, sono contento di poter essere utile a tutta questa gente! 😀 E’ un po’ che non rispondo ai vostri commenti, è ora di rimboccarsi le maniche

    @Cardy: certo che puoi linkarmi, anzi devi 😛

    @Marco: grazie per i complimenti al mio modo di piegare le magliette, ho solo copiato da altri 😛 Arrivando al tuo quesito, a quanto vedo i problemi li hai risolti, ti sarei grato se commentassi qui come hai fatto, così da essere utile ad altri che dovessero incapparvi.

    @Alex: per registrare le modifiche alle stored procedure non devi salvare la query come un file bensì eseguire l’istruzione di ALTER PROCEDURE, ovvero cliccare sul punto esclamativo rosso.

    @diego: sono contento per te! 😀

    @Gaetano: beh con l’installazione normale i sorgenti dei provider li trovi in <X>:\Programmi\ASP.NET Provider Toolkit SQL Samples\

    @Daniele: Domanda: in che senso ti sei creato un SQLMembershipProvider??? Per lavorare su Aruba, come detto nel mio post, basta modificare i sorgenti messi a disposizione di Microsoft togliendo ogni riferimento a dbo e poi configurarlo in questa maniera:

    <add connectionStringName=”db” enablePasswordRetrieval=”false” enablePasswordReset=”false” requiresUniqueEmail=”false” requiresQuestionAndAnswer=”false” minRequiredPasswordLength=”1″ minRequiredNonalphanumericCharacters=”0″ applicationName=”MiaApp” passwordFormat=”Hashed” name=”MioMembershipProvider” type=”Microsoft.Samples.SqlMembershipProvider, ProviderToolkitSampleProviders”/>

    Nella tua configurazione manca il nome dell’applicazione senza il quale non funziona il MembershipProvider (più sopra c’è un commento proprio su questo) e poi l’attributo type mi sa che non ha il valore giusto.
    Spero di esserti stato d’aiuto.

    Buon lavoro a tutti,

    Peppe

    Giuseppe Pace

    giovedì 20 settembre 2007 at 1:05

  54. Ciao Peppe, si avevo generato una SQLMemberShipProvider Personalizzata… ovvero che invece di puntare sulla tabella aspnet_user puntava su un’altra tabella… questo visto che non avevo trovato nessun’alternativa…

    Che poi non ho ben capito una cosa… Nel momento in cui utilizzi il toolkit.. comunque su aruba dovrai andare a ricreare la stessa situazione che hai in locale… ovvero creare le stesse tabelle presenti nell’ASPNET.MDF ?

    Il tuo consiglio ?

    Ricreare il tutto tramite i puntatori standard e poi sostituire il tutto con il ToolKit?

    Ciao
    Daniele

    PS: E’ necessario per forza compilare il progetto? O posso comunque lavorare uploadando tutti i file?

    Daniele

    giovedì 20 settembre 2007 at 11:06

  55. Ciao a tutti,
    sto cercando di esportare le tabelle del DB ASPNET.MDF … solo che quando utilizzo l’SQL SCRIPTER ed inserisco

    .\SQLEXPRESS
    e il nome del DB

    mi da errore dicendomi che non posso collegarmi…

    Come posso risolverlo?
    Ciao
    Daniele

    Daniele

    giovedì 20 settembre 2007 at 20:49

  56. @Daniele: sì, per lavorare con il MembershipProvider “standard” sia su Aruba che in tutti gli altri casi occorre che nel database siano presenti tabelle, viste e procedure relative al provider. Il mio consiglio è di creare questi oggetti sul tuo db in locale utilizzando l’utility aspnet_regsql.exe che puoi trovare in genere nella directory C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\

    Per quanto riguarda la connessione al db che non ti riesce, devi prima collegare il file ASPNET.MDF al server SQLExpress se già non lo è, e poi provare a collegarti selezionando la checkbox Integrated Security. Se non dovesse funzionare allora prova a controllare che la connessione TCP/IP al tuo server SQL sia abilitata.

    Buon lavoro

    Peppe

    Giuseppe Pace

    venerdì 21 settembre 2007 at 0:38

  57. Ciao Peppe, visto che non trovavo via di uscita… ho continuato con l’SQLMembership Personalizzato… ora va tutto bene… dovevo solo capire che Aruba voleva l’App_Code nella Root 🙂

    Tramite VS2005 PRO te lo crea automaticamente il DB ASPNET.MDF con le relative tabelle di tutti i provider standard…

    Controllerò la Connessione ho fatto di tutto ma nisba… proverò con il TCP/IP.

    Grazie tante e complimenti per la disponibilità… non è da tutti 🙂

    Buon weekend
    Daniele

    Daniele

    venerdì 21 settembre 2007 at 8:48

  58. Salve,
    magari leggendo i vostri post mi accorgo di essere piuttosto newbie, ma io ho un database mdf nella mia applicazione in locale, vorrei 1. esportarla su aruba…come posso fare? 2. chi ho creato la dll e ora dovrei modificare quelle altre cose nel db…sarei grato a chiunque mi spieghi dettagliatamente come fare…sò di esssere una rottura di balle ma vi giuro mi sono letto un mattone enorme per capire .net ma di queste cose proprio non parlava :\ grazieee

    Synapse

    sabato 22 settembre 2007 at 1:47

  59. scusatemi ma intendo precisare, io tramite sql scripter riesco a esportare i record ma come fare per le viste e per le stored procedure?
    come faccio oltre che esportare le insert anche la definizione delle tabelle? penso che sia io fuori strada, ci sarà senz’altro qualche query di esportazione come quelle generate da phpmyadmin o mi sbaglio?

    Synapse

    sabato 22 settembre 2007 at 2:39

  60. Ciao Synapse,
    per esportare il database puoi procedere almeno in due modi diversi:
    – utilizzare la funzione di creazione dello script, relativo a tutto il db, presente in SQL Server Management Studio (non ricordo adesso se tale funzione è presente nella versione Express)
    – creare un backup del database locale e poi ripristinarlo usando i tool messi a disposizione da Aruba.
    A te la scelta, buon lavoro.

    Peppe

    Giuseppe Pace

    lunedì 24 settembre 2007 at 22:13

  61. ciao Peppe, con l’aiuto di Alberto sono riuscito a fare tutto, ma ho il problema dello SchemaVersione.
    Ho fatto come hai detto, ma mi da’ sempre lo stesso errore.

    I rekord li ho passati a mano in quanto l’importazione (su aruba)trasmite csv, pur avendomi segnalato che è andata a buon fine, non ci ho trovato nulla e quindi li ho inseriti a mano.

    Cosa posso fare?

    Grazie Gaetano

    Gaetano

    mercoledì 26 settembre 2007 at 11:38

  62. Ciao beppe, complimenti ti assicuro che sono settimane che vago per il web nella ricerca di chiarimenti sull’argomento e ti assicuro che non si trova nulla di più chiaro del tuo tutorial! detto questo è evidente che sono una capra in quanto rilevo questo errore:
    Impossibile caricare il tipo ‘Microsoft.Samples.AspNetSqlRoleProvider’ dall’assembly ‘ProviderToolkitSampleProviders’

    ora ti dico quello che ho fatto:
    -ricreato nel db aruba tutte le tabelle e le sp togliendo dbo e aggiungendo MSSqlxxxx,
    scaricato il toolkit, apro visual c# express edition (tutto ok???)
    cambio tutti i riferimenti dbo con MSSqlxxx nelle 3 classi SQLMembershipProvider.cs
    SqlProfileProvider.cs
    SQLRoleProvider.cs
    clicco sulla soluzione>> genera
    vado a recuperare la dll che trovo nella dir BIN e la pubblico sul web (dopo aver creato anche online una dir BIN)
    ho modificato come segue il webconfig, per tutti e tre i provider, ad es:

    dove sbaglio??? mi puoi aiutare???

    devo aggiungere che non ho utilizzato aspnetdb creato con wizard ma i codici di esempio correlati al libro asp.net 2 di bocchicchio & C, ma credo che la cosa non cambi
    ti ringrazio tantissimo
    ciao buon lavoro
    luisa

    luisa

    venerdì 5 ottobre 2007 at 21:58

  63. @Gaetano: SchemaVersione????? l’errore può essere dovuto alla presenza ancora di riferimenti all’utente dbo, ricontrolla bene il codice.

    @luisa: grazie per i complimenti, metto a disposizione soltanto la mia esperienza.
    Hai fatto tutto correttamente ma per quello che ho potuto notare dall’errore sul tuo sito richiami la classe sbagliata, infatti al posto della classe Microsoft.Samples.AspNetSqlRoleProvider dovresti richiamare Microsoft.Samples.SqlRoleProvider ed ottenere qualcosa di simile a questo:

    <add name=”MioRoleProvider” type=”Microsoft.Samples.SqlRoleProvider, ProviderToolkitSampleProviders” connectionStringName=”MioConnectionString” applicationName=”MiaApplicazione”/>

    Buon lavoro a tutti

    Peppe

    Giuseppe Pace

    lunedì 8 ottobre 2007 at 19:53

  64. Wow!!!
    funziona, ti ringrazio tantissimo, ancora grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie
    ciao
    luisa

    luisa

    martedì 9 ottobre 2007 at 13:29

  65. prego! 😉

    Giuseppe Pace

    martedì 9 ottobre 2007 at 15:08

  66. ciao Giuseppe,

    ho cancellato tutto dal databAse di Aruba ed ho rieffettuato i passggi.

    Sembra sia andato tutto bene.

    Per lo schema Version, su cui mi da’ errore, ho letto nei post precedenti che bisogna importare i movimenti.

    Io uso VS e Management Studio express e non ho trovato la parte relativa alla creazione del CSV.

    Per quanto riguarda la creazione dello script Insert, devo usare quello previsto in Management studio e che crea questo script?:
    INSERT INTO [C:\PROGETTIWEB\MIOSITOASP\APP_DATA\ASPNETDB.MDF].[dbo].[aspnet_SchemaVersions]
    ([Feature]
    ,[CompatibleSchemaVersion]
    ,[IsCurrentVersion])
    VALUES
    (
    ,
    ,)

    Non penso però che vada bene

    grazie

    Gaetano

    martedì 9 ottobre 2007 at 18:46

  67. Ciao Gaetano,
    non c’è bisogno che fai uno script per inserire i record nella tabella aspnet_SchemaVersions. Sono soltanto sei e con un semplice inserimento manuale ti togli il pensiero. Comunque no, quello script non va affatto bene.

    Buon lavoro

    Giuseppe Pace

    mercoledì 10 ottobre 2007 at 12:51

  68. ciao Giuseppe, ti ringrazio per la risposta e scusa se insisto, ma devo consegnare al + presto la procedura e non riesco a capire l’errore.

    Ho dato un’occhiata ai precedenti posto e ho letto quello di Luigi in cui dice che bisogna implemetare SqlRoleProvider.
    Penso ciò in quanto l’errore che mi da’ riguarda questa riga in particolare:
    ddlRuoloUtente.DataSource = Roles.GetAllRoles();

    Ho copiato le linee che ha postato, ed adesso sembra funzionare tutto bene.ti ringrazio di vero cuore.

    ciao

    Gaetano

    mercoledì 10 ottobre 2007 at 20:11

  69. @Gaetano: non ho capito se funziona o non funziona…

    Giuseppe Pace

    mercoledì 10 ottobre 2007 at 20:46

  70. Ciao Giuseppe
    Complimenti per il blog.
    Non ho ancora deciso di “salutare” aruba solo perchè ho letto queste tue pagine.
    Credo di aver completato tutti i punti della guida ma non riesco a capire quali dbo devo esattamente togliere dal db locale.

    Nello script che ottengo con SQL Server Management Studio (attività -genera script…) ho circa 600 dbo…..
    – Se provo come Luisa a sostituire tutti i dbo con MSSqlxxx (compreso nel codice dell’assembly) non riesco più ad eseguire lo script per ricreare il db

    – Se apro invece le singole viste e sp mi trovo altri riferimenti con suffisso dbo esempio

    FROM [dbo].[aspnet_Membership] INNER JOIN [dbo].[aspnet_Users]
    ON [dbo].[aspnet_Membership].[UserId] = [dbo].[aspnet_Users].[UserId]

    devo togliere tutti i dbo o solo quelli relativi in questo caso a membership?

    Quando infine salvo le modifiche alle viste con l’esclamativo rosso non spariscono i riferimenti dbo ne sul titolo ne sull’alter view.

    Scusa per l’ignoranza in materia e grazie.

    Paolo

    lunedì 15 ottobre 2007 at 18:19

  71. Ciao Paolo,
    tu devi sostituire tutti i riferimenti a dbo che trovi, sia quelli presenti nel codice, sia quelli presenti nello script che generi, solo che non devi salvare e rieseguire il nuovo script in locale bensì lo devi eseguire online con il pannello messo a disposizione da Aruba.
    Buon lavoro,

    Peppe

    Giuseppe Pace

    lunedì 15 ottobre 2007 at 19:51

  72. Ciao Giuseppe,

    non so se sono io che sono di “coccio” evidentemente si 😦
    ma non riesco a capire come registrare le dll su aruba.

    ho i file cs delle connessioni, li ho modificati sostituendo mssqlxxxxx ai vari dbo, ma nella mia applicazione non ci sono riferimenti a dll o a file cs!!! non ho capito bene se mettendoli su una cartella bin ed eseguendo l’upload aruba li prende direttamente come riferimenti di default. inoltr mi chiedevo… cosa intendi per “ricompilare” l’applicazione? eseguire un “genera sito web”?

    grazie infinite per la disponibilità

    stefano

    Stefano

    lunedì 12 novembre 2007 at 13:01

  73. Ciao Stefano,
    tu devi aprire il progetto relativo ai provider (in genere è questo: C:\Programmi\ASP.NET Provider Toolkit SQL Samples\ProviderToolkitSampleProviders.csproj), lì fare le dovute sostituzioni e una volta concluse, ricompilare questo progetto per ottenere l’assembly ProviderToolkitSampleProviders.dll Fatto tutto ciò non rimane che copiare questo file nella cartella Bin della tua applicazione e configuare i provider nel web.config

    Buon lavoro

    Peppe

    Giuseppe Pace

    lunedì 12 novembre 2007 at 13:23

  74. Ciao a tutti, naturalmente sono incappato anche io nel problema di Aruba e SqlMembershipProvider.
    Ho eseguito tutti i punti spiegati da Giuseppe (che ringrazio per questo splendido blog!), però, non avendo un server sql locale, non ho il database Aspnetdb.mdf da poter esportare nel database sql di aruba.
    Come si crea da zero ? Oppure, posso su aruba creare manualmente le tabelle da qualche script ? Se non sbaglio devo creare le seguenti quattro:

    aspnet_Applications
    aspnet_Membership
    aspnet_SchemaVersions
    aspnet_Users

    Grazie

    Alex

    martedì 13 novembre 2007 at 18:40

  75. Ciao Alex,
    ahimè non ci sono da creare soltanto 4 tabelle bensì taaante tabelle, taaaaante stored procedure e anche un paio di viste… Ti consiglio di scaricarti le versioni Express di SQL Server 2005 e di SQL Server Management Studio e con quelle procedere al “travaso”.

    Buon lavoro.

    Peppe

    Giuseppe Pace

    martedì 13 novembre 2007 at 20:29

  76. Grazie della risposta Giuseppe, ho scaricato e installato le due “suite” di programmi.
    Quando però eseguo aspnet_regsql e vado avanti, invece di autenticarmi e farmi procedere alla creazione del famigerato db, mi spara fuori questo errore:

    “Impossibile connettersi al database SQL Server.

    —————————————-
    Dettagli dell’errore
    —————————————-

    System.Web.HttpException: Impossibile connettersi al database SQL Server. —> System.Data.SqlClient.SqlException: Si è verificato un errore mentre si cercava di stabilire una connessione con il server. Quando ci si connette a SQL Server 2005, questo errore potrebbe essere provocato dal fatto che l’SQL Server non ammette connessioni remote sotto le impostazioni predefinite. (provider: Provider Named Pipes, error: 40 – Impossibile aprire una connessione a SQL Server)”

    Ora, il server SQL è attivo, è settato per accettare connessioni remote. Bah !!!

    Alex

    mercoledì 14 novembre 2007 at 0:32

  77. Ho risolto il problema precedente, in una tab della configurazione del server ho dovuto abilitare l’ip relativo al pc e inserire la porta tcp 1433. Non capisco perchè quando si installa non lo fa lui …
    Ora mi diverto a creare l’aspnetdb.mdf … forse 🙂

    Alex

    mercoledì 14 novembre 2007 at 0:48

  78. Questa poi è incredibile, spero possa essere utile anche ad altri. Ricevevo l’errore ‘System.Web.Security.SqlMembershipProvider’ requires a database schema compatible with schema version ‘1’.

    Perso ogni speranza, trovo questo sito (http://www.openkb.org/tiki-read_article.php?articleId=133) dove suggeriscono di aprire il web.config con il notepad e risalvarlo senza fare nessuna modifica (io comunque ci ho aggiunto uno spazio alla fine altrimenti non funzionava).
    Incredibile, adesso l’errore è sparito e tutto funziona a meraviglia. Grazie ancora Peppe !

    Alex

    mercoledì 14 novembre 2007 at 2:21

  79. Davvero sorprendente questa cosa, a me lo stesso l’errore veniva scatenato dal fatto che mancavano dei record nella tabella ‘aspnet_SchemaVersions’ che non avevo copiato, quindi dopo aver esportato il database. Non immaginavo potessse dipendere anche da questa stranissima cosa. Bah

    Buon lavoro!

    Giuseppe Pace

    mercoledì 14 novembre 2007 at 10:28

  80. ciao a tutti… ho un problema… ho fatto tutto ciò che è scritto nella guida sopra, cioè scaricato. modificato, compilato i provider (chiamati Provider.dll), li ho messi nella dir BIn del sito, ho modificato le store procedure e configurato il web.config:

    e

    ho però inserito i ruoli e li ho assegnati ai vari utenti manualmente direttamente nel DB. Il problema è che appena cerco di accedere nella sezione riservata mi ritorna l’errore:
    The SSE Provider did not find the database file specified in the connection string. At the configured trust level (below High trust level), the SSE provider can not automatically create the database file.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Configuration.Provider.ProviderException: The SSE Provider did not find the database file specified in the connection string. At the configured trust level (below High trust level), the SSE provider can not automatically create the database file.

    Source Error:

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace:

    [ProviderException: The SSE Provider did not find the database file specified in the connection string. At the configured trust level (below High trust level), the SSE provider can not automatically create the database file.]
    System.Web.DataAccess.SqlConnectionHelper.EnsureSqlExpressDBFile(String connectionString) +2555237
    System.Web.DataAccess.SqlConnectionHelper.GetConnection(String connectionString, Boolean revertImpersonation) +87
    System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider.GetConnectionHolder() +16
    System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider.LoadPersonalizationBlobs(WebPartManager webPartManager, String path, String userName, Byte[]& sharedDataBlob, Byte[]& userDataBlob) +195
    System.Web.UI.WebControls.WebParts.PersonalizationProvider.LoadPersonalizationState(WebPartManager webPartManager, Boolean ignoreCurrentUser) +95
    System.Web.UI.WebControls.WebParts.WebPartPersonalization.Load() +105
    System.Web.UI.WebControls.WebParts.WebPartManager.OnInit(EventArgs e) +497
    System.Web.UI.Control.InitRecursive(Control namingContainer) +321
    System.Web.UI.Control.InitRecursive(Control namingContainer) +198
    System.Web.UI.Control.InitRecursive(Control namingContainer) +198
    System.Web.UI.Control.InitRecursive(Control namingContainer) +198
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +692

    come lo risolvo? avete qualche idea?

    Andrea

    sabato 1 dicembre 2007 at 17:34

  81. WEB.CONFIG:

    membership defaultProvider=”Provider”
    providers
    clear/
    add applicationName=”fantacalcio” name=”Provider” connectionStringName=”k1″ type=”Microsoft.Samples.SqlMembershipProvider, Provider”/
    /providers
    /membership
    roleManager enabled=”true” defaultProvider=”Providerrole”
    providers

    add applicationName=”fantacalcio” name=”Providerrole” connectionStringName=”k1″ type=”Microsoft.Samples.SqlRoleProvider, Provider”/
    /providers
    /roleManager

    Andrea

    sabato 1 dicembre 2007 at 17:36

  82. riesco a creare gli utenti tramite il control

    Andrea

    sabato 1 dicembre 2007 at 17:39

  83. Ciao Andrea,
    è probabile che ci sia qualche errore nella stringa di connessione che non permetta alla tua applicazione di accedere al db, quindi tenta di crearlo ma a causa delle restrizioni fallisce.
    Questa è la mia diagnosi in base all’errore che hai postato.
    Buon lavoro.

    Peppe

    Giuseppe Pace

    sabato 1 dicembre 2007 at 17:53

  84. Ciao Giuseppe,
    volevo ringraziarti per questa ottima ed utilissima guida.
    Al termine della guida da te descritta continuavo ad avere un errore
    sulla checkSchemaVersion, l’ho risolto copiando anche i dati (1 record) contenuti in aspnet_Application. (Qualche store procedure fa riferimento a questi dati durante la fase di creazione di un utente).
    Ciao e grazie

    Fabrizio

    domenica 2 dicembre 2007 at 2:44

  85. Ho controllato la stringa ma va tutto bene, riesco a creare l’utente, a recuperare la password, e riesco pure ad autenticarmi, perchè i dati di sessione che registro dopo if (Membership.ValidateUser(name, pass)) ci sono tutti. Quindi al DB mi riesco a connettere.
    Cha cosa può essere?

    Andrea

    domenica 2 dicembre 2007 at 13:10

  86. Ho sbagliato pure io… il problema non è dovuto al file di config o alla stringa di connessione ma semplicamente alle WebParts che utilizzo nella pagina. infatti togliendo il webpartsmanager dalla Master mi funzionano tutte le pagine tranne ovviamente quelle dove utilizzo le webparts.
    Qualcuno sa risolvere questo problema?

    Andrea

    lunedì 3 dicembre 2007 at 13:47

  87. ho eseguito alla lettera i vs. passi ma adesso ho un altro errore che è questo :
    The ‘Microsoft.Samples.SqlMembershipProvider’ requires a database schema compatible with schema version ‘1’. However, the current database schema is not compatible with this version. You may need to either install a compatible schema with aspnet_regsql.exe (available in the framework installation directory), or upgrade the provider to a newer version.

    Come posso risolvere?

    Crescenzo

    giovedì 6 dicembre 2007 at 13:43

  88. @Andrea: non ho avuto occasione di usare le webparts quindi non saprei aiutarti

    @Crescenzo: questo errore ha due possibili cause, o hai dimenticato a copiare i record della tabella aspnet_SchemaVersions dal db locale a quello su internet oppure come è capitato ad Alex quasi un mesetto fa ti tocca aprire il web.config con il notepad e risalvarlo senza fare nessuna modifica.

    Buon lavoro a tutti

    Giuseppe Pace

    lunedì 10 dicembre 2007 at 11:57

  89. ops… scusate l’ignoranza, ma qual’è la sintassi esatta da utilizzare nella web.config per instanziare i provider?
    Nell’esempio si dice di “sostituire” in ognuno dei tre provider sostituite il contenuto dell’attributo type, ma io non ho alcun riferimento nel mio web.config (quindi non posso sostituirlo, eventualmente aggiugnerlo).
    Sono novellino di asp.net, quindi quello che è dato qui per scontato non lo è tanto per me.
    Grazie! :o)

    Luciano

    venerdì 25 gennaio 2008 at 12:17

  90. Salve a tutti,
    io sono partito dallo starterkit ClubSite,
    poi ho fatto un backup del DB MsSql “Vergine” di Aruba
    e ho fatto un restore localmente con Sqlserver 2005,
    ho inserito tutte le tabelle,viste e SP sostituento lo schema dbo con lo schema MsSqlxxxxx come indicato da trecnico Aruba.
    Ho rimesso su aruba il db poi ho scaricato ProviderToolkitSampleProviders sostituendo dbo. con MsSqlxxxxx.

    ed infine ho modificaato il web.config cosi’ :



    <!—->

    <!—->

    ma ancora non funziona…

    sono disperato :(,
    come posso fare ?

    PS. puoi vedere il risultato della mia disperazione su http://www.caivola.it

    Ciao

    Marco

    giovedì 28 febbraio 2008 at 13:02

  91. Ho seguito i passaggi della tua guida. non parte il sito (in locale) e mi da questo errore:
    Server Error in ‘/Website1’ Application.
    Unable to cast object of type ‘Microsoft.Samples.SqlMembershipProvider to type ‘DotNetNuke.Security.Membership.MembershipProvider.
    Prima di aver apportate le tue modifiche accedevo solo alla parte pubblica del sito ma quando tentavi di loggarti diceva che non trovava la stored procedure dbo.aspnet_CheckSchemaVersion. Ti ringrazio anticipatamente per l’aiuto.

    Andro

    martedì 1 aprile 2008 at 10:05

  92. @Andro: Ciao, ho l’impressione che ci sia un po’ di casotto nel file web.config del tuo sito, infatti tu gli indichi il provider personalizzato da te però lui si aspetta quello di DotNetNuke. Dai un’occhiata quindi al file web.config.
    Il problema relativo alla stored procedure ‘aspnet_CheckSchemaVersion’ di solito è dovuto al fatto che il nome della stessa è all’interno del codice di un’altra stored procedure e lì non hai tolto il riferimento a dbo.

    Buon lavoro,

    Peppe

    Giuseppe Pace

    mercoledì 2 aprile 2008 at 1:02

  93. scusami ancora ma non riesco a risolvere il problema.
    Non ho molta esperienza con dotnetnuke. Non potrei inviarti il web.config (tipo ad un tuo indirizzo di posta) così ci dai un occhiata e magari me lo metti a posto, sempre se ha tempo.
    ciao, grazie.

    Andro

    giovedì 3 aprile 2008 at 15:58

  94. Ciao a Tutti,
    grazie ai vs suggerimenti ho risolto alcuni problemi nel tentativo di mettere il linea, su Aruba, un sito che prende spunto dal “Club Site Extended” della Microsoft.
    Purtroppo però non funziona ancora, poichè anche il mio usa le WebParts. Ho quindi lo stesso problema postato da Andrea il giorno Lunedì 3 Dicembre 2007 at 13:47.
    Ho visto che Marco, nel sito http://www.caivola.it ha utilizzato lo stesso StarterKit e ha risolto il problema.
    Sapete dirmi come?
    Grazie anticipato a chi mi può aiutare! 🙂

    Davide

    mercoledì 9 aprile 2008 at 16:20

  95. Ho risolto! 🙂
    Per far funzionare anche le WebParts del Extended Club Site StarterKit ho dovuto personalizzare anche il provider che si occupa della gestione delle stesse, aggiungendo nel web.config:

    Quindi, oltre a tutto quello che è già stato indicato da quelli che mi hanno preceduto, basta aggiungere nel web.config anche queste poche righe.

    Ciao e grazie a Tutti! 😉
    Davide

    Davide

    giovedì 10 aprile 2008 at 11:31

  96. Ciao, ho eseguito tutti i passi e credo di averli fatti bene. Però mi viene restituito questo errore:
    Type ‘Microsoft.Samples.SqlMembershipProvider’ does not inherit from ‘System.Web.Management.WebEventProvider’.

    Perchè? Come lo risolvo?

    Grazie

    Andrea P.

    mercoledì 16 luglio 2008 at 11:28

  97. complimenti per il tread.
    io mi trovo ad avere un errore simile a quello di Andrea, mi viene restituito il seguente messaggio

    Provider must implement the class ‘System.Web.Security.RoleProvider’

    purtroppo leggendo tutti i vari interventi sembra che sia successo soltanto a me 😦

    fabio scarpantoni

    venerdì 25 luglio 2008 at 14:51

  98. Ho trovato questo articolo che faceva il mio caso e mi sono messo a svilupparlo.Ho fatto tutto e supponiamo il caso che vada tutto bene.Ho aggiunto la dll ed il reference. Supponiamo che io la importi in una pagina e voglia in serire un ruolo, come devo usare la classe SqlRoleProvider? Come devo istanziarla pe poter inserire un ruolo nelle tabelle?? Postami qualche linea di codice…grazie

    Giuliano

    martedì 18 novembre 2008 at 17:06

  99. Ciao,
    Ho seguito le istruzioni (anche io sono, purtroppo, su aruba), e tutto va bene per quanto riguarda il Membership.

    Mi dà però problemi per i roles, infatti mi dà l’errore:

    The ‘Microsoft.Samples.SqlRoleProvider’ requires a database schema
    compatible with schema version ‘1’. However, the current database schema is
    not compatible with this version. You may need to either install a
    compatible schema with aspnet_regsql.exe (available in the framework
    installation directory), or upgrade the provider to a newer version.

    Eppure io ho copiato le 6 righe nella tabella aspnet_SchemaVersions; ho anche provato a salvare e riuploadere il file web.config; ma nulla 😦

    Che fare?

    Carmine

    mercoledì 17 dicembre 2008 at 18:25

  100. Ottima guida, tutto funziona! Grazie!

    teo prome

    lunedì 19 gennaio 2009 at 16:59

  101. GRANDE GRANDE Peppe… anche se con un pò di fatica sono riuscito a far andare il tutto…

    Un grazie mille x la guida, ora l’unica cosa che mi rimane da fare e far fare l’upload di un file sul webserver, a dir il vero lho già fatto solo che funziona solo in locale mentre su aruba non accetta l’upload del file. Probabilmente il problema è legato all’utenza che viene usata da IIS e dunque la domanda è: come faccio a far in modo di fare l’upload di file da browser? devo configurare in qualche modo particolare i provider dell’amministrazione sito web oppure cè qualche procedimento disponibile su aruba???

    Andrea

    martedì 12 maggio 2009 at 22:25

  102. Ciao Peppe,
    Ho seguito scrupolosamente la tua guida. Ho ricompilato i provider e copiato la dll nella cartella BIN del sito internet. Ho ricostruito il database su MS Sql con tutte le tabelle, viste e store procedure eliminando tutti i riferimenti a dbo; ho inserito i record relativi. Ho cambiato il web.config del mio sito. Ma non vado al di là di un errore su Rolemanager ed un riferimento a LocalSqlServer e ai provider vecchi. O sbaglio la configurazione del web.config oppure salto qualche operazione dopo aver compialato la dll (che copio semplicemente nelladirectory BIN). Se mi puoi aiutare te ne sarei molto grato, è da una decina di giorni che mi sto ammattendo. Grazie

    Ray

    lunedì 27 luglio 2009 at 22:53

  103. Peppe… sei semplicemente un mito, grazie!

    Daniele

    venerdì 19 febbraio 2010 at 12:50

  104. Ciao Peppe, io sto facendo una cosa similare per connettermi a un sistema WSS portando tutta la parte di autenticazione su un db esterno (tramite aspnet_regsql).

    Ahime la ASP.NET configuration mi vede tutto corretto tranne la configurazione della “protezione” che mi da
    l’errore maledetto:
    *** Il seguente messaggio può essere utile per la diagnosi del problema: Could not find stored procedure ‘dbo.aspnet_CheckSchemaVersion’.***

    E sinceramente non so più dove sbattare la testa. Anche modificando la connectionstring e forzando nel web.config l’accesso come SA del db, mi da quell’errore.

    Sai come aiutarmi? Grazie.
    Riccardo.

    Merlinox

    lunedì 8 marzo 2010 at 17:38

  105. I like what you guys are up too. Such clever work
    and exposure! Keep up the awesome works guys I’ve incorporated you guys to my blogroll.

    Desmond

    giovedì 13 dicembre 2012 at 4:48

  106. How much time did it require you to compose “Utilizzare SqlRoleProvider, SqlMembershipProvider
    e SqlProfileProvider su hosting Aruba Peppe Pace”? It carries
    loads of very good material. Many thanks -Brady

    Boyd

    mercoledì 20 febbraio 2013 at 5:01


Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: