使用Credentials.FromSessionAsync伪造API NullReferenceException

问题描述

我正在https://learnforge.autodesk.io/#/?id=learn-autodesk-forge上进行Forge API教程,但遇到了问题。我正在使用.NET(C#)示例,并且一直进行到最后,但是当我尝试运行该应用程序时,出现了错误。当我运行它时,我会得到应有的登录页面

Forge Signin

但是当我单击“ AUTODESK登录”时会引发错误

enter image description here

看来Credentials对象被返回为NULL。它为获取该对象而调用的代码如下:

1234
 joint
    ├── 01
    ├── 02
    └── all

我不确定该代码块中的会话凭据来自何处。

我是Forge API的新手,所以将不胜感激。

谢谢 格里

解决方法

以下是按时间顺序使用Autodesk凭据登录后发生的事情:

  • Autodesk登录页面将您重定向到Forge应用程序的回调URL (通常设置为api/forge/callback/oauth之类)

  • 在您的代码中,用于api/forge/callback/oauth路由的handler会调用Credentials.CreateFromCodeAsync

  • Credentials.CreateFromCodeAsync方法向会话添加了“ ForgeCredentials”属性

  • api/forge/callback/oauth路由处理程序然后将您重定向回应用程序的主页

  • 主页向api/forge/oauth/token端点发出请求,以从会话中获取访问令牌

对于您而言,由于某些原因“ ForgeCredentials”属性不可用。可能是本应用来定义session属性的代码失败。尝试单步执行api/forge/callback/oauth路由处理程序的代码,然后查看以下代码行是否成功执行:

HttpContext.Current.Session.Add("ForgeCredentials",JsonConvert.SerializeObject(credentials));

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...