Пользовательский модуль аутентификации, вызываемый только при наличии учетных данных

Я реализую некоторый код, который говорит с веб-сервером, который использует расширение RFC2617. Чтобы уладить это, я реализовал модуль IAuthenticationManager.

Мой модуль проверки подлинности проверяет, является ли полученный вызов для MyAuth:

    public Authorization Authenticate(String challenge, WebRequest request, ICredentials credentials)
    {

        if (!challenge.Contains(AuthenticationType)) // MyAuth
        {
            {
                return null; 
            }
        }
        ...
        // Get the token, omitted here

        return authorization;

Затем я вызываю AuthenticationManager.Register(MyAuthModule);

Когда WebRequest имеет UseIntegrated.UseDefaultCredentials = true или запрос имеет учетные данные, добавленные в WebRequest.Credentials, тогда вызывается мой модуль аутентификации и все работает. Однако, если WebRequest не имеет учетных данных и не использует учетные данные по умолчанию, мой модуль авторизации не вызывается и запрос терпит неудачу.

Как я могу убедиться, что мой модуль аутентификации вызывается при получении запроса, но у WebRequest нет учетных данных и не используется учетных данных по умолчанию?

Ответ 1

Похоже, что запрос поступает анонимно. Вы можете проверить, действительно ли это происходит, обрабатывая анонимный запрос, поскольку он объясняет здесь.

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