87 messaggi dal 11 settembre 2004
Salve,
Forse non ho capito qualcosa, ho creato le classi
Public Class customMembershipProvider
Inherits MembershipProvider
e
Public Class custmMembershipRoleProvider
Inherits System.Web.Security.RoleProvider
ed aggiunto sul web.config

<providers>
<clear />
<add name="customMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SQLConnectionString"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
passwordFormat="Hashed"
applicationName="/"
/>
</providers>
</membership>

<roleManager enabled ="true" defaultProvider ="customMembershipRoleProvider" >
<providers>
<clear />
<add name ="customMembershipRoleProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="SQLConnectionString"
applicationName="/"/>
</providers>
</roleManager>

Così facendo non dovrebbero essere chiamate le mie classi???

grazie
Modificato da zeropower il 03 agosto 2017 17.43 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
è importante che valorizzi l'attributo type con il nome completo del tuo custom provider. Aver impostato il name non è sufficiente perché quella è solo una stringa che identifica il provider.

Come vedi, stai ancora usando il provider predefinito:

type="System.Web.Security.SqlMembershipProvider"


Invece tu dovrai indicare il cosiddetto "fully qualified name" della tua classe customMembershipProvider, cioè il nome della classe comprensivo del suo namespace ed eventualmente del nome dell'assembly.
Faccio un esempio ma non sarà sicuramente corretto. Devi essere tu a conoscere il nome del namespace e dell'assebly in cui hai definito la classe.

type="TuaApplicazione.Servizi.CustomMembershipProvider"


Se ASP.NET non dovesse riuscire a trovare il tipo, prova ad indicare anche il nome dell'assembly in coda al nome.

type="TuaApplicazione.Servizi.CustomMembershipProvider, TuaApplicazione"


Lo stesso fai anche con il provider dei ruoli, che ovviamente avrà un nome diverso (es. TuaApplicazione.Servizi.CustomMembershipRoleProvider).

Invece, a proposito di questo errore:

Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'


Hai preparato il database con le tabelle e le stored procedures necessarie alla Membership API? Trovi il tool aspnet_regsql.exe per preparare il db in questa cartella di Windows:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319

Qui c'è la documentazione:
https://docs.microsoft.com/en-us/aspnet/web-forms/overview/older-versions-security/membership/creating-the-membership-schema-in-sql-server-cs

ciao,
Moreno

Enjoy learning and just keep making
87 messaggi dal 11 settembre 2004
Grazie,
In effetti hai perfettamente ragione, in merito alla valorizzazione dell'attributo type, bastava rifletterci un'attimo.
Ho preparato il database con aspnet_regsql.exe e l'errore era sparito ma il custom provider non veniva comunque caricato.
Scusa ma non c'e' un sistema per utilizzare le proprie tabelle e stored procedure invece di quelle di sistema.

Ho visto che questo sistema fa parte di una "older version", prima utilizzavo FormsAuthentication.Authenticate e visual studio 2015, mi ha consigliato di utilizzare Membership.ValidateUser, per questo poi avendo bisogno piu' aree di acceso al sito avevo pensato di utilizzare i ruoli. Ma se anche questo è obsoleto, mi piacerebbe poter utilizzare un sistema attuale, visto che sto riscrivendo tutto.

ti ringrazio delle tue risposte come sempre molto utili.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, prego!
se vuoi un sistema più moderno, che ti consenta di riutilizzare le tue tabelle, dovresti dare un'occhiata ad ASP.NET Identity.

Abbiamo scritto vari script e articoli, li trovi qui:
http://www.aspitalia.com/script/script_ASP.NET_Identity.aspx

Inizia a leggere da queste due panoramiche
http://www.aspitalia.com/articoli/asp.net4.5.1/introduzione-asp.net-identity.aspx
http://www.aspitalia.com/articoli/asp.net4.5.1/security-asp.net-mvc-identity.aspx

ciao,
Moreno
Modificato da BrightSoul il 05 agosto 2017 14.54 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.