Как обойти метод Validate в UserNamepasswordvalidator после аутентификации

Я использую класс Customvalidator, унаследованный от UserNamepasswordvalidator. Проблема в том, что он вызывается при каждом запросе. Я хочу обойти это, как только пользователь аутентифицирован

любая помощь будет оценена

1 ответ

Там нет никакого способа, чтобы пропустить валидатор, пользовательский, имя пользователя / пароль или сертификат на основе. Он на самом деле вызывается до того, как запрос попадает в вашу основную функцию, поэтому нет способа обойти его, используя сеанс или переменную.

И это действительно смысл отделять аутентификацию от обработки сообщений... это позволяет вам отклонять поддельные запросы на самой ранней стадии процесса запрос / ответ, чтобы ваша программа не теряла циклов, отбрасывая атаки зомби и тому подобное.

Конечно, вы можете не применять аутентификацию заранее при обработке вашего сообщения и аутентифицироваться при поступлении запроса (не раньше, как в предыдущей модели). На этом этапе вы можете создать сеанс программным путем и продолжить с этого момента... но вы будете обрабатывать каждое полученное сообщение.

Я добавлю это, однако. Если вы думаете, что если вы используете что-то вроде NetTCPBinding или NetNamedPipesBinding, вы можете создать постоянный сеанс между клиентом и хостом, таким образом аутентифицируясь только один раз.

Другие вопросы по тегам