Attualmente sto scrivendo un provider di appartenenza personalizzato per asp .net e il problema che sto avendo è che non so come dare parametri al provider di appartenenza personalizzato nel allo stesso modo che si danno ai provider di appartenenza asp .net standard nel file web.config come la lunghezza della password.Asp .Net Parametri di appartenenza personalizzati da web.config
risposta
Quando si deriva la propria classe da MembershipProvider
si deve eseguire l'override del metodo Initialize()
, ha seguente firma:
public override void Initialize(string name, NameValueCollection config);
Il System.Collections.NameValueCollection
è un dizionario in cui trovare le opzioni scritte nel file web.config
. Queste opzioni sono fornite nello stesso modo in cui si specificano le opzioni per i provider "standard" (come attributi). Ogni voce del dizionario ha la chiave del nome dell'attributo e come valore il valore dell'attributo (come string
).
public class MyMembershipProvider : MembershipProvider
{
public override void Initialize(string name, NameValueCollection config)
{
base.Initialize(name, config);
_enablePasswordReset = config.GetBoolean("enablePasswordReset", true);
}
}
Dove, nel mio esempio, GetBoolean()
è un metodo di estensione dichiarato da qualche parte come segue:
public static bool GetBoolean(this NameValueCollection config,
string valueName, bool? defaultValue)
{
object obj = config[valueName];
if (obj == null)
{
if (!defaultValue.HasValue)
throw new WarningException("Required field has not been specified.");
return defaultValue.Value;
}
bool value = defaultValue;
if (obj is Boolean)
return (bool)obj;
IConvertible convertible = obj as IConvertible;
try
{
return convertible.ToBoolean(CultureInfo.InvariantCulture);
}
catch (Exception)
{
if (!defaultValue.HasValue)
throw new WarningException("Required field has invalid format.");
return defaultValue.Value;
}
}
Se il proprio provider deriva da MembershipProvider : ProviderBase
, è necessario caricare tutta la configurazione e applicare il modulo web.config.
Considerare l'implementazione personalizzata IPrincipal
e/o IIdentity
- a volte è un punto di estensione migliore e poiché non tutti ne sono a conoscenza, spesso non viene utilizzato.
Allo stesso modo si definisce l'appartenenza .net serie:
<membership defaultProvider="MyCustomMembershipProvider" userIsOnlineTimeWindow="30">
<providers>
<clear />
<add name="MyCustomMembershipProvider" type="Namespace.MyCustomMembershipProvider" connectionStringName="db_ConnectionString" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="false" passwordFormat="Encrypted" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="8" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/" />
<add name="StandardMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="db_ConnectionString" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Encrypted" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="8" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/" />
</providers>
</membership>
- 1. Leggere valori web.config in ASP classico
- 2. ASP .NET MVC Memorizzazione di molti parametri tra le viste
- 3. asp.net mvc e membri di appartenenza e ruolo personalizzati
- 4. ASP.NET MVC Provider di appartenenza personalizzato Errore Web.config
- 5. Web.config Modalità errori personalizzati Conflitto
- 6. CORS in ASP .NET MVC5
- 7. ASP .Net WorldPay Integration
- 8. 301 Reindirizzare in ASP.NET web.config compresi i parametri
- 9. Override machine.config da web.config
- 10. ASP .net posizione fisica corrente
- 11. Come aggiungere un elenco o più valori per una singola chiave in web.config in asp .net
- 12. Provider di dati .NET personalizzati
- 13. ASP .Net VNext e Owin
- 14. .NET e ASP vs PHP
- 15. Caricamento file .Net ASP Errore di lunghezza massima richiesta superato
- 16. Reindirizzare gli utenti non autorizzati asp net
- 17. Imposta dinamicamente la stringa di appartenenza dall'appartenenza al codice
- 18. Trasferimento sicuro utente da un'applicazione ASP .NET a un'altra
- 19. Distribuzione di ASP NET Core a IIS
- 20. Lunghezza massima di querystring su asp .net 2.0
- 21. Come avviare nodejs con parametri personalizzati da vscode
- 22. Definizione di tagPrefixes nella guida Web.config
- 23. Aggiunta di attributi personalizzati a un asp: controllo CheckBox
- 24. Semplici ruoli personalizzati per l'autenticazione di Windows in asp. netto?
- 25. Implementazione di appartenenza personalizzataUtente
- 26. Asp .Net MVC Viewmodel dovrebbe essere di classe o struct?
- 27. ASP .NET MVC corretta architettura UserControl
- 28. Come utilizzare jquery in ASP. NET Core
- 29. Abilitazione Disabilitazione pulsante asp .net - utilizzando JavaScript
- 30. Leggere web.config da JavaScript
Questo è esattamente come l'ho fatto in passato, dopo aver chiamato 'base.Initialize' riempi i rimanenti valori di configurazione, impostando i valori predefiniti adatti o generando eccezioni come necessario per i parametri obbligatori mancanti. –