Usare Db agganciato SQLExpress per Membership

domenica 22 giugno 2008 - 00.54

Aragorn2004 Profilo | Newbie

Ne sono venuto a capo ma la motivazione rimane oscura.
Spiego:
Ho cambiato la pagina di destinazione (quella che doveva essere chiamata dopo l'autenticazione) mettendone una leggera con una label e basta.
Provo ad autenticarmi e tutto come prima.
Ho tolto l'attributo DestinationPageUrl="http://..." dal controllo login che era inserito tanto non serviva.
Magicamente la pagina richiesta si è aperta.

Allora imputo tutto a questa "stupidaggine" ma neanche per sogno perchè ora rimettandola l'autenticazione funziona lo stesso.

In tutto questo "peregrinare" sono venuto a capo del fatto che l'Utente ASPNET deve appartenere (ai fini dell'autenticazione) ai seguenti ruoli del DB utilizzato per l'autenticazione

aspnet_membership_BasicAccess
aspnet_membership_ReportingAccess
aspnet_Roles_BasicAccess
aspnet_Roles_ReportingAccess
db_ddlAdmin
db_SecurityAdmin


A me sembra che ASP.NET sia un tantino delicato......

Grazie a tutti coloro che hanno dedicato il loro tempo

------------------------------------------------------------------------------------------------------------------------------------------



Diciamo che sto impazzendo per poter utilizzare un DB che sia agganciato a SQL Server e non che venga agganciato al volo.

Allora ricapitolo un po' quello che ho fatto.

Il problema è che ogni volta che cerco di autenticare l'utente ricevo "TENTATIVO non riuscito"

Ho creato con aspnet_regsql -W il nuovo database aggancaato a SQL Server Express.

SQl EXPRESS ha l'autenticazione di WINDOWS integrata.
IL DB l'ho chiamato RUOLISHARED.

Da Visual Studio 2005 (Configurazione ASP.NET) riesco a modificare tutti i parametri (Creare Utenti, Regole di Accesso e Ruoli)

Ho creato in Windows un utente saRUOLI con password saRUOLI
L'ho abilitato in SQLExpress come dbowner del DB RUOLISHARED
Inoltre l'ho messo nei ruoli del DB db_ddladmin e db_securityadmin

Negli stessi ruoli ho messo anche l'utente ASPNET (e già che c'ero l'ho reso db_owner anche a lui: abbondiamo)

La connectionstring per LocalSqlServer del webconfig l'ho provata in tutti i modi: con Data Source con SERVER e UID e PWD

Inoltre utilizzo un altro DB sempre su SQl Express per costruire un TREEVIEW con le varie funzioni e questo viene correttamente utilizzato.

Su IIS 5.1 il sito web è configurato per l'accesso anonimo.


E' possibile che sia così assurdo gestire delle membership con un DB che non sia attaccato al volo ?

Grazie a tutti coloro che dedicheranno il loro tempo.


Sotto riporto il WEb.CONFIG e la parte di MACHINE.CONFIG

Questo è il WEB.CONFIG

<connectionStrings>
<remove name="LocalSqlServer"/>
<clear/>
<add name="LocalSqlServer" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=RUOLISHARED;Integrated Security=SSPI; Connection Timeout=30" providerName="System.Data.SqlClient"/>
<add name="DBSito" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=SitoDCP;integrated security=SSPI;Connection Timeout=30" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<siteMap>
<providers>
<remove name="AspNetXmlSiteMapProvider" />
<add name="AspNetXmlSiteMapProvider"
type="System.Web.XmlSiteMapProvider"
securityTrimmingEnabled="true" siteMapFile="web.sitemap" />
</providers>
</siteMap>

<!-- Roles API -->
<roleManager enabled="true" defaultProvider="SqlServer">
<providers>
<clear/>
<add connectionStringName="LocalSqlServer" applicationName="/" name="SqlServer"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
<!-- Profile API -->
<profile enabled="true" defaultProvider="SqlServer" automaticSaveEnabled="false">
<providers>
<add name="SqlServer"
connectionStringName="LocalSqlServer" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</profile>
<!-- Membership API -->
<membership defaultProvider="SqlServer">
<providers>
<clear/>
<add connectionStringName="LocalSqlServer" enablePasswordRetrieval="false"
enablePasswordReset="true" requiresQuestionAndAnswer="false"
applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="3"
minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="5"
passwordStrengthRegularExpression="" name="SqlServer" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</membership>

Questo il pezzo del MACHINE.CONFIG da ConnectionString fino alla fine

<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.data>
<DbProviderFactories>
<add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add name="SQL Server CE Data Provider" invariant="Microsoft.SqlServerCe.Client" description=".NET Framework Data Provider for Microsoft SQL Server 2005 Mobile Edition" type="Microsoft.SqlServerCe.Client.SqlCeClientFactory, Microsoft.SqlServerCe.Client, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</DbProviderFactories>
</system.data>
<system.web>
<processModel autoConfig="true"/>
<httpHandlers/>
<membership>
<providers>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
</providers>
</membership>
<profile>
<providers>
<add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</profile>
<roleManager>
<providers>
<add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
</system.web>
</configuration>
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5