Obecnie piszę niestandardowego dostawcę członkostwa dla asp .net, a problem, który mam, polega na tym, że nie wiem jak podać parametry dostawcy niestandardowego członkostwa w w ten sam sposób, w jaki podajesz standardowym dostawcom członkostwa ASP.NET w pliku web.config, np. długość hasła.Asp .Net Niestandardowe parametry członkostwa z web.config
Odpowiedz
Kiedy czerpią swoją klasę z MembershipProvider
trzeba zastąpić metodę Initialize()
, ma następujący podpis:
public override void Initialize(string name, NameValueCollection config);
System.Collections.NameValueCollection
jest słownikiem, gdzie można znaleźć opcje zapisane w pliku web.config
. Opcje te są podane w ten sam sposób, w jaki określasz opcje dla "standardowych" dostawców (jako atrybuty). Każda pozycja w słowniku ma klucz nazwy atrybutu i wartość atrybutu (jako string
).
public class MyMembershipProvider : MembershipProvider
{
public override void Initialize(string name, NameValueCollection config)
{
base.Initialize(name, config);
_enablePasswordReset = config.GetBoolean("enablePasswordReset", true);
}
}
Jeżeli w moim przykładzie GetBoolean()
jest metoda rozszerzenie ogłoszony gdzieś następująco:
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;
}
}
Jeśli Twój dostawca wywodzi się z MembershipProvider : ProviderBase
niż cała konfiguracja, należy załadować i zastosować formularz web.config.
Rozważ implementację niestandardowych IPrincipal
i/lub IIdentity
- czasami jest to lepszy punkt rozszerzenia, a ponieważ nie każdy jest tego świadomy, często nie jest używany.
W ten sam sposób można zdefiniować standardowe członkostwa .net:
<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. Czytanie sekcji członkostwa z web.config
- 2. jak wylogować się z członkostwa w ASP
- 3. Dlaczego potrzebujemy web.config w ASP .NET 5 wwwroot?
- 4. Alternatywy dla członkostwa .Net
- 5. Odczytywanie wartości web.config w klasycznej ASP
- 6. programistyczne logowanie z dostawcą członkostwa .net
- 7. CORS w ASP .NET MVC5
- 8. Ustaw dynamicznie ciąg połączenia członkostwa z kodem
- 9. ASP .Net WorldPay Integration
- 10. asp.net mvc i niestandardowe dostawców członkostwa i roli
- 11. .NET 4.5 Nazwy tabeli uniwersalnego dostawcy członkostwa
- 12. Maksymalna długość kwerendy na asp .net 2.0
- 13. integracja tinymce z asp .net MVC 4.0
- 14. ASP NET Core 2 z pełną strukturą
- 15. Uzyskaj własne parametry HTTPModule w web.config?
- 16. .NET i ASP vs PHP
- 17. Dostawca członkostwa ASP.NET z EF
- 18. ASP: Pole NET Confirm Password
- 19. Niestandardowe dostawcy danych .NET
- 20. Jak ręcznie utworzyć tabele sql prostego członkostwa?
- 21. Jak zatrzymać web.config dziedziczenie
- 22. Połącz się z bazą danych Oracle z ASP .Net Core
- 23. wysłać niestandardowe parametry do sterowania użytkownik ASCX
- 24. Firebase dynamic link obsługuje niestandardowe parametry?
- 25. Przekształcenia Web.Config z Octopus Deploy
- 26. Wybór biblioteki wykresów w ASP .NET MVC
- 27. ASP> net MVC wielokrotnego użytku partials
- 28. ASP. NET MVC Przechowywanie wielu parametrów między widokami
- 29. Czy ctl00 jest stałą w ASP NET?
- 30. Ugodowe środowisko sieciowe na ASP .NET MVC
To jest dokładnie tak, jak robiłem to w przeszłości, po wywołaniu "base.Initialize" wypełnij pozostałe wartości konfiguracyjne, ustawiając odpowiednie ustawienia domyślne lub wyrzucając wyjątki, jeśli jest to konieczne dla brakujących parametrów obowiązkowych. –