Я работаю над внедрением пользовательского поставщика членства, который работает против существующей схемы в моей базе данных и имеет несколько мыслей/вопросов.Контроль доступа и поставщик пользовательского членства
Элемент управления доступом автоматически вызывается методом ValidateUser поставщика членства, поэтому независимо от того, как я реализую провайдера, единственное, что беспокоит управление login, - это значение bool, возвращаемое этим методом. То, что меня смущает, может быть множество причин, по которым попытка входа в систему не удалась; пользователь заблокирован, слишком много попыток за определенный промежуток времени и т. д. Я не вижу способа передать это элементу управления, чтобы он мог отображать правильное сообщение. Другие свойства поставщика членства, такие как PasswordStrengthRegularExpression, абсолютно не влияют на контроль входа в систему (из коробки), я бы надеялся, что он автоматически каким-то образом преобразует в валидаторы регулярных выражений, но это, похоже, не является дело. Похоже, мне нужно инициализировать свойства управления входом с этими настройками из конфигурации поставщика, если я хочу, чтобы они сами взяли сам элемент управления.
Если единственное, что элемент управления входами извне (без ручного управления событиями и выполнения инициализации, как описано выше), вызывает метод ValidateUser у поставщика членства, я не вижу возможности вернуться к входу в систему контролировать, почему валидация не удалась или даже делала такие вещи, как регулирование запросов проверки на основе определенного временного окна. В конечном счете, мой вопрос заключается в том, почему я бы даже использовал поставщика членства, а затем в сочетании с контролем входа? Похоже, он был разработан только для ответа типа «Да/Нет», который очень ограничительный. Если я хочу построить логику с разными сообщениями обратно пользователю, мне нужно обработать события управления входами и вызвать мои собственные классы проверки подлинности, которые будут обрабатывать все мои бизнес-требования, а также возвращать настраиваемое сообщение об ошибке обратно в элемент управления Login показ пользователю, чтобы они знали, почему их попытка недействительна.
Если я ошибаюсь в своих предположениях, кажется, что интерфейс между элементом управления Login как API-интерфейсом членства является слишком ограничительным, чтобы быть полезным. Возможно, API работает лучше для других аут-контролов, таких как ChangePassword, но для фактического управления входом я не вижу смысла.
Я ценю ваши мысли.
Разве поставщик членства не теряет для меня значение в этот момент? Если я буду делать это и обработать событие Authenticate, я должен сам вызвать метод ValidateUser у провайдера. Этот метод будет недостаточным, поэтому мне придется вызвать другой метод, который фактически скажет мне, почему логин завершился неудачно. Я согласен с вами в силе пароля. – e36M3
@ e36M3 - Yeap, вы правы. это путь. То, что я сделал бы, это сначала вызвать все проверки, записать ошибку в элементе управления свойство ErrorMessage и, наконец, если что-то не удастся, –