Проблемы с базовым кодом (?) При ASP. NET Core OAuth - PullRequest
0 голосов
/ 18 февраля 2020

Я использую пакет ASP. NET Core Authentication.OAuth (версия 2.2.0) для разработки промежуточного программного обеспечения для уникального потока аутентификации в моем веб-приложении. Я использую. NET Core 3.1. Я сталкиваюсь с несколькими проблемами, когда кажется, что в базовом коде пакета отсутствуют конструкторы / методы, создавая отсутствующие исключения методов, которые я не могу разрешить (например, это исключение, которое я получил, но по-настоящему не разрешил : " MissingMethodException: метод не найден: 'Void Microsoft.AspNetCore.Authentication.OAuth.OAuth creationTicketContext..ctor ", который я получил при попытке создать экземпляр объекта OnCreatingTicketContext). Я попытался удалить и переустановить пакет OAuth, поэтому я не верю, что это проблема с моей конкретной установкой c. Хотя мне удалось обойти некоторые из этих ошибок, в настоящее время я не могу создать новые объекты OAuthTokenResponse в моем расширенном классе OAuthHandler.

При вызове OAuthTokenResponse.Success(response) возникает исключение отсутствующего метода (" Метод не найден: 'Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse Microsoft.AspNetCore.Authentication.OAuth.OAuthTokenResponse.Success (Newtonsoft. Json .Linq.JObject) ' "). Если я пытаюсь напрямую указать каждое из полей объекта (как показано ниже), меня встречает другая ошибка: «« OAuthTokenResponse »не содержит конструктор, который принимает 0 аргументов ».

var payload = JObject.Parse(await response.Content.ReadAsStringAsync());
var result = new OAuthTokenResponse()
            {
                Response = payload,
                AccessToken = payload.Value<string>("access_token"),
                TokenType = payload.Value<string>("token_type"),
                RefreshToken = payload.Value<string>("refresh_token"),
                ExpiresIn = payload.Value<string>("expires_in")
            };

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

1 Ответ

0 голосов
/ 27 марта 2020

Эта проблема возникла из-за наличия нескольких ссылок на один и тот же набор пакетов. Я не осознавал, что версии ядра ASP. NET после 2.2 не упоминались при включении пакетов Nuget и что платформа. NET Core 3.1 предоставляла самые последние версии. Я удалил / удалил ссылки на пакеты версии 2.2, и проблема исчезла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...