ASP.NET 核心 OAuth 的基本代码问题 (?)
Base Code Issues (?) with ASP.NET Core OAuth
我正在使用 ASP.NET 核心 Authentication.OAuth 包(版本 2.2.0)为我的 Web 应用程序中的独特身份验证流程开发中间件。我正在使用 .NET Core 3.1。我 运行 遇到了几个问题,其中似乎包的基本代码中缺少 constructors/methods,创建了我无法解决的缺失方法异常(例如,这个异常,我已经解决了但还没有真正解决:“MissingMethodException: Method not found: 'Void Microsoft.AspNetCore.Authentication.OAuth.OAuth CreatingTicketContext..ctor” 我在尝试实例化一个OnCreatingTicketContext
对象)。我已经尝试卸载并重新安装 OAuth 包,所以我不认为这是我的特定安装的问题。虽然我已经设法解决了其中的一些错误,但我目前无法在我的扩展 OAuthHandler
class 中实例化新的 OAuthTokenResponse
对象。
调用 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")
};
确实,从 class 的定义来看,似乎没有定义接受任意数量参数的构造函数,尽管我怀疑它存在并且只是不可访问,所以这也许是可以预料的。不管是什么情况,我都不知道该怎么办,我也分不清是我做错了什么还是包裹本身有问题。有什么见解吗?
这个问题源于对同一组包的多次引用。我没有意识到 ASP.NET 2.2 之后的核心版本没有通过包含 Nuget 包来引用,并且 .NET Core 3.1 框架提供了最新版本。我 uninstalled/deleted 参考了 2.2 版本的软件包,问题就消失了。
我正在使用 ASP.NET 核心 Authentication.OAuth 包(版本 2.2.0)为我的 Web 应用程序中的独特身份验证流程开发中间件。我正在使用 .NET Core 3.1。我 运行 遇到了几个问题,其中似乎包的基本代码中缺少 constructors/methods,创建了我无法解决的缺失方法异常(例如,这个异常,我已经解决了但还没有真正解决:“MissingMethodException: Method not found: 'Void Microsoft.AspNetCore.Authentication.OAuth.OAuth CreatingTicketContext..ctor” 我在尝试实例化一个OnCreatingTicketContext
对象)。我已经尝试卸载并重新安装 OAuth 包,所以我不认为这是我的特定安装的问题。虽然我已经设法解决了其中的一些错误,但我目前无法在我的扩展 OAuthHandler
class 中实例化新的 OAuthTokenResponse
对象。
调用 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")
};
确实,从 class 的定义来看,似乎没有定义接受任意数量参数的构造函数,尽管我怀疑它存在并且只是不可访问,所以这也许是可以预料的。不管是什么情况,我都不知道该怎么办,我也分不清是我做错了什么还是包裹本身有问题。有什么见解吗?
这个问题源于对同一组包的多次引用。我没有意识到 ASP.NET 2.2 之后的核心版本没有通过包含 Nuget 包来引用,并且 .NET Core 3.1 框架提供了最新版本。我 uninstalled/deleted 参考了 2.2 版本的软件包,问题就消失了。