Confessions of a Dangerous Mind

Brain.FlushBuffer()
posts - 176, comments - 234, trackbacks - 93

ASP.net Membership provider e l'utente dbo...

Oggi, lavorando sull'installazione di un portale DNN 4.0.1, mi sono scontrato con un problema abbastanza grosso e potenzialmente pericoloso della Membership/RoleProvider/ProfileProvider API di ASP.net 2.0.

Nel dettaglio, ho scoperto che, installando tutte le tabelle necessarie ad ASP.net con un utente che non fa parte del ruolo db_owner (dbo) di SQL 2000, DNN non funziona. Ma la doccia è stata ancora più fredda quando ho scoperto che il problema non era dovuto a delle chiamate tra stored procedures, bensì all' hard-coding dell'utente dbo all'interno dell'assembly System.Web.dll. Le varie chiamate alle stored procedures sono infatti del tipo

Dim _command1 as new SqlCommand("dbo.aspnet_CheckSchemaVersion",_cnn)

Il mio¬†pensiero poi si è spostato sul fatto che nessun prodotto sviluppato con ASP.net 2.0 ed ospitato su un server dove l'utente del database __non__ sia dbo può funzionare.

Qualcuno è già a conoscenza del problema e l'ha già risolto?

Print | posted on giovedì 22 dicembre 2005 20:40 | Filed Under [ Bugs! ]

Feedback

Gravatar

# re: ASP.net Membership provider e l'utente dbo...

Ciao Davide
il problema che hai trovato NON è un problema. Il fatto che ci sia rifiermento al "dbo" nella chiama dell'oggetto è giustissimo. Per far si che il tutto funzioni, devi dare all'utente con cui fai l'installazione di dotnetnuke i permessi corretti per poter eseguire il comando CREATE. Se durante l'installazione dotnetnuke fa uso anche di statement come ALTER e DROP allora ti conviene mettere l'utente nel ruolo DDL_ADMIN.
23/12/2005 10:31 | Davide Mauri
Gravatar

# re: ASP.net Membership provider e l'utente dbo...

Ciao Davide, grazie per la risposta, ma il problema esiste comunque perchè io NON posso dare permessi all'utente, perchè il Database è stato configurato dal provider di servizi.
Io non posso creare tabelle con Owner dbo, bensì solo tabelle con owner uguale all'utente che il provider di servizi mi ha fornito per connettermi al database.
Ora vien da sè che se modificassi gli script della membership/role/profile per creare le tabelle correttamente, comunque nell'assembly la chiamata sarebbe dbo.aspnet_* e non mioutente.aspnet_*
23/12/2005 11:37 | Davide Senatore
Gravatar

# re: ASP.net Membership provider e l'utente dbo...

Ciao, mi ritrovo con lo stesso identico problema.
Ho acquistato una spazio con i servizi x sql, mi sono dovuto scaricare ed eseguire tutti gli script che servono a generare il database "ASPNETDB.MDF" che viene creato da visual studio 2005, modificandoli xchè non potevo utilizzare l'owner 'dbo', ma nonostante ciò continuo a prendermi errore "Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'".
Non riesco a risolvere il problema, potete farmi sapere se avete delle novità anche a questo indirizzo fd.fino@tiscali.it.
Grazie.
04/01/2006 20:31 | Fabrizio
Gravatar

# re: ASP.net Membership provider e l'utente dbo...

Stesso identico problema !
02/04/2006 14:49 | daniele
Gravatar

# re: ASP.net Membership provider e l'utente dbo...

Problema risolto!!!!! :-)
Su www.area05.com ho messo a disposizione una versione di dnn 4.0.2 che gira sui server di aruba.
17/04/2006 04:42 | microchip
Gravatar

# re: ASP.net Membership provider e l'utente dbo...

Dunque, allo stato attuale sono stati rilasciati i sorgenti dei principali providers di ASP.net 2.0, come riportato nel blog di Scott Guthrie, PM di ASP.net.
Li potete trovare su
http://weblogs.asp.net/scottgu/archive/2006/04/13/442772.aspx
Il passo successivo sarebbe quello di scaricarli, compilarli, ed utilizzarli nei nostri progetti. Se riesco a trovare un pò di tempo, potrei anche pubblicarli già compilati con annesse impressioni d'uso...
21/04/2006 20:08 | Davide Senatore
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET