Vito Arconzo's Blog

.net, .net, .net & windows presentation foundation

Recent Posts

Tags

News

  • This is my personal blog. These postings are provided "AS IS" with no warranties, and confer no rights. The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer

    MVP



    Ciao Flavio!

    Add to Technorati Favorites

    Subscribe in NewsGator Online

    Skype Me™!

Community

Email Notifications

Link Utili

Archives

Hosting Aruba + MembershipProvider di ASP.NET 2.0 : si può!

Mi è capitato nelle scorse settimane di dover pubblicare due applicazioni ASP.NET 2.0 in cui erano utilizzati i providers Membership, Role e Profile.

Quando ho saputo che le applicazioni dovevano girare su Aruba, per prima cosa ho pensato di scappare  (avevo letto qualcosa a proposito dei problemi relativi all'utilizzo dei provider su Aruba) ma poi, armato di santa pazienza mi sono messo al lavoro .

Il problema principale è dovuto al fatto che, l’implementazione di Microsoft dei tre provider ha, sia nelle classi che nel codice SQL, “embedded” il riferimento all’utente dbo, che non è l’utente che Aruba fornisce per accedere al server MS SQL e quindi qualsiasi storedprocedure, o metodo .net delle classi utilizza dbo.nomemetodo.

Ecco quindi i passi necessari per ovviare alla cosa:

  • Scaricare i sorgenti dei tre provider (http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi)
  • Rimuovere dai sorgenti tutti i riferimenti all’utente dbo
  • Compilare i sorgenti in modo da avere un nuovo assembly ProviderToolkitSampleProviders.dll
  • Copiare l’assembly nella cartella Bin della WebApp
  • Nel web.config nella riga corrispondente alla definizione di ognuno dei tre provider sostituire il contenuto dell’attributo type con il seguente : “Microsoft.Samples.<Nome_della_classe_del_provider>, ProviderToolkitSampleProviders”
  • Esportare 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.
  • Sostituire con questi nuovi script le viste e le stored procedure presenti sull’hosting di Aruba
  • Copiare, infine, i record contenuti nella tabella aspnet_SchemaVersions dal vostro db a quello su Aruba

Ecco un esempio di modifica del file web.config:

<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>

Che 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>
Tutto sembra funzionare alla perfezione quindi....Mission Completed! 

Comments

FoxyBlog said:

# June 14, 2007 12:39 PM

luigi said:

potresti mettere in download il nuovo provider, gli script sql e il web.config modificato? faresti cosa utilissima ame e a molti altri Grazie
# September 19, 2007 10:36 AM