Search English (United States)  Italiano (Italia)
Thursday, August 21, 2008 ..:: Forum ::.. Register  Login
   Minimize
 
  Forum  Discussioni  Varie  DNN
Previous Previous
 
Next Next
New Post 1/10/2006 11:21 AM
User is offline andrea-dev
13 posts
www.bassoandrea.it/
No Ranking


DNN 
Ciao Andrea, ti scrivo perchè ho letto il tuo 3d sul forum Aruba ....
 
.... dove parlavi di un impossibile istallazione del DNN 3.2.2 su Aruba a causa delle Memberroule .... ti riporto il tuo 3d ....
 
Non è possibile installare la versione 3: richiede MemberRole (la nuova autenticazione) richiede l'accesso ad SQL come DBO, cosa esclusa dalle faq di SQL. La versione 2 si può installare previa modifica dei sorgenti. Una versione pronta all'installazione si trova per gli utenti registrati in www.laconsulenza.com alla sezione download.
 
Nonostante altri utenti del forum sono riusciti misteriosamente ad installarlo .... dopo numerosi tentativi mi sono convinto che è davvero impossbile installarlo ....nel 3d parlavi di una versione pronta per l'intallazione per gli utenti registrati in www.laconsulenza.com .... mi sono registrato ... ma non ho trovato niente!
 
New Post 1/10/2006 11:23 AM
User is offline andrea-dev
13 posts
www.bassoandrea.it/
No Ranking


Re: DNN 
Ecco i collegamenti:
installazione
http://www.studio-virtuale.net/Portals/0/DotNetNuke_2.1.2.zip-ARUBA.zip


sorgenti:
http://www.studio-virtuale.net/Portals/0/DotNetNuke_2.1.2.zip-ARUBA.source.zip
 
New Post 1/11/2006 2:04 AM
User is offline mastro76
1 posts
www.ep3.it
No Ranking


Re: DNN 

Ciao Andrea volevo ringraziarti per il tuo interessamento inoltre volevo segnalarti che il secondo link (quello della versione senza i sorgenti) non  funziona ... comunque purtroppo Aruba ha installato la versione 2.0 del framwork e quindi la versione 2.x non è più compatibile.

 

Ciao e grazie ancora

P.S. Il timeout della sessione utente è troppo breve!!!!!!!!!!!!!!!

 
New Post 1/27/2006 10:53 PM
User is offline andrea-dev
13 posts
www.bassoandrea.it/
No Ranking


Re: DNN 

I collegamenti corretti sono:

http://www.studio-virtuale.net/Portals/0/DotNetNuke_2.1.2.zip-ARUBA.source.zip

http://www.studio-virtuale.net/Portals/0/DotNetNuke_2.1.2-ARUBA.zip

Ho corretto il timeout di sessione (thanks per la segnalazione).

Peccato per ARUBA. Ora non resta che modificare i sorgenti di DNN 3.x per l'installazione. A tal proposito riporto un post inviato in www.dnnitalia.com (http://www.dnnitalia.com/Forum/tabid/52/forumid/8/threadid/4930/threadpage/8/scope/posts/Default.aspx):


 Mai scoraggiarsi
Intanto sarebbe bene ricreare le limitazioni di ARUBA sul PC a casa per poter testare una soluzione funzionante. Per cui:
dalla nostra cartella DNN eliminiamo i permessi di lettua e scrittura dell'utente ASPNET

  • nella cartella DNN aggiungiamo una cartella PUBLIC
  • aggiungiamo a tale cartella i permessi di lettura e scrittura dell'utente ASPNET
  • creaiamo un DB user senza i permessi di amministrazione che utilizzeremo per la nostra installazione DNN.
In effetti è possibile installare DNN 3 su ARUBA, solo che va modificato il core, quindi si perde la possibilità di installare gli aggiornamenti ed inoltre possono esserci dei problemi con i moduli personalizzati di cui non si hanno i sorgenti (penso).

Vi riporto gli step che avevo affrontato per l'installazione FUNZIONANTE di dnn 3 su aruba:
  • modifica percorsi per installare tutto sulla cartella PUBLIC da sorgenti VB, ASPX e WEBCONFIG
  • modifica script "*.SqlDataProvider" eliminando con un sostituisci di notepad DBO. e [dbo]. (senza mettere il nome dell'utente fornito da ARUBA: funziona comunque ed inoltre si ottiene uno script che va bene per tutti)
  • modifica script "*.sql" eliminando con un sostituisci di notepad DBO. e [dbo].
A questo punto i problemi legati ai permessi web di ARUBA sono superati. Resta il problema che la gestione dell'autenticazione utenti, legata agli script *.sql, cerca delle tabelle e procedure nel DB che si chiamano:
dbo.aspnet_Membership
dbo.aspnet_Profile
dbo.aspnet_Roles
ecc...
eliminando dagli script *.sql dbo. in fase di installazione creaiamo delle tabelle e procedure chiamate:
NomeDBAruba.aspnet_Membership
NomeDBAruba.aspnet_Profile
NomeDBAruba.aspnet_Roles
ecc...
Per le limitazioni di SQL Aruba non possiamo lasciare il nome delle procedure/tabelle con DBO, altrimenti non possiamo accederci.
In teoria nel WEBCONFIG c'è una riga in cui indichiamo chi è il proprietario del DB e l'applicazione dovrebbe accedere al DB attraverso quel proprietario. Questo è vero per DNN ma l'autenticazione è creata da Microsoft, pensata per avere un'unica autenticazione con applicativi diversi, attraverso appunto gli script SQL e la DLL MemberRole.dll.
Se notate all'interno della cartella Providers si trovano i progetti:
  • MembershipProviders
  • ProfileProviders
  • RoleProviders
Tutti e tre utilizzano la DLL incriminata, che ripeto, è stata programmata prevedendo l'accesso al DB con lo user DBO.
Non per niente le istruzioni di installazione di DNN richiedono:

The databaseOwner attribute is used to identify the user that “owns” the database objects.  By default it is set to “dbo” and in most cases this attribute should be left this way.  However, some SQL Server DBAs (in particular in Shared Hosting Environments) may not grant the user you identify in the connection string db_owner privileges.  In this case, set the databaseOwner attribute to your login user.  Note this user will need to have the following SQL Permissions, at a minimum:

  • db_datareader (necessary for dotnetnuke)
  • db_datawriter (necessary for dotnetnuke)
  • db_ddladmin (neccessry for MemberRoles)
  • db_securityadmin (necessary during installation of MemberRoles)
E su ARUBA mancano appunto le ultime due.
Ma attraverso Vb.NET è possibile crearsi il proprio provider di autenticazione evitando quindi di utilizzare come proprietario DBO; attraverso funzioni e proprietà "Overrides" facciamo le modifiche che riteniamo opportune.
E qui sorgono altri problemi ... quali sono le modifiche opportune?
Supponiamo che DNN utilizzi la funzione presente nella DLL IsUserInRole, ecco che devo modificarla per utilizzare la stringa di connessione che non contiene DBO.
Noi dovremmo creare nel nostro DNNSQLRoleProvider una funzione del tipo:

        Public Overrides Function IsUserInRole(ByVal username As String, ByVal roleName As String) As Boolean
            Dim flag2 As Boolean = False
            Try
                Dim parameterArray1 As SqlParameter() = New SqlParameter(3 - 1) {}
                parameterArray1(0) = New SqlParameter("@ApplicationName", SqlDbType.NVarChar)
                parameterArray1(0).Value = Me.ApplicationName
                parameterArray1(1) = New SqlParameter("@UserName", SqlDbType.NVarChar)
                parameterArray1(1).Value = username
                parameterArray1(2) = New SqlParameter("@RoleName", SqlDbType.NVarChar)
                parameterArray1(2).Value = roleName
                Dim num1 As Integer = IntegerType.FromObject(SqlHelper.ExecuteScalar(Me._ConnectionString, "aspnet_UsersInRoles_IsUserInRole", parameterArray1))
                If (num1 > 0) Then
                    flag2 = True
                End If
            Catch exception2 As Exception
                ProjectData.SetProjectError(exception2)
                Dim exception1 As Exception = exception2
                ProjectData.ClearProjectError()
            End Try
            Return flag2

In sostanza abbiamo detto che va utilizzata la nostra funzione (la cui stringa di connessione è con lo user "normale") e non quella di di MembersRole.dll.

Non per scoraggiarti, ma le modifiche da fare sono moltissime.
Io, dopo qualche settimana di lavoro a tempo perso, ero arrivato a buon punto, sennochè esce la nuova release di DNN. Butto tutte le modifiche e inizio di nuovo sulla nuova release, poi dopo qualche altra settimana completo il tutto, faccio l'installazione e vedo che i moduli personalizzati non funzionato, le skin danno problemi, altro tempo per sistemare i sorgenti (dove possibile).
Alla fine concludo che potevo sopravvivere anche con la versione 2.1.2 che non aveva tutti questi problemi anche con ARUBA, finchè non scopro http://www.websecurestores.com/, che a prezzi onesti offre 500 MB di spazio SQL con DNN preinstallato.

I lavori fatti mi sono serviti per conoscere meglio sia DNN che VB.NET e considero più economico spendere 120$ che sprecare tempo a rincorrere ARUBA ad ogni release di DNN

ARUBA ora non lo utilizzo più.

 
Previous Previous
 
Next Next
  Forum  Discussioni  Varie  DNN

 Print   
Copyright 2005 by Basso Andrea   Terms Of Use  Privacy Statement