Я использую пакет 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")
};
Действительно, из определения класса видно, что не определено никакого конструктора, принимающего любое количество аргументов, хотя я подозреваю, что он существует и просто недоступен, так что, возможно, этого следовало ожидать. Как бы то ни было, я не знаю, что делать, и не могу сказать, что я делаю не так, или это проблема самого пакета. Есть идеи?