我的代码中有以下几行
var issuer = "https://" + ConfigurationManager.AppSettings["auth0:DOMAIN"] + "/";
var audience = ConfigurationManager.AppSettings["auth0:CLIENT_ID"];
var secret = TextEncodings.Base64Url.Decode(
ConfigurationManager.AppSettings["Auth0:CLIENT_SECRET"]);
在最后一条语句中抛出空异常。这是堆栈跟踪的一部分:
[ArgumentNullException: Value cannot be null.
Parameter name: text]
Microsoft.Owin.Security.DataHandler.Encoder.Base64UrlTextEncoder.Decode(String text) +99
AuthZero.API.Startup.ConfigureAuthZero(IAppBuilder app) in c:\Users\Abdi\Source\Repos\Auth0-Example\AuthZero.API\Startup.cs:34
AuthZero.API.Startup.Configuration(IAppBuilder app) in c:\Users\Abdi\Source\Repos\Auth0-Example\AuthZero.API\Startup.cs:21
显然 TextEncodings.Base64Url.Decode 正在寻找一个字符串参数,但我里面有另一个方法。不知道为什么它不起作用,因为我从另一个 github repo复制。
这是我的 AppSettings,它位于 Web.Config文件中:
<appSettings>
<add key="auth0:ClientId" value="gO0K9jkaxegRGRSHcZLuaiaCR3aSnDkH" />
<add key="auth0:ClientSecret" value="1zvvKpyWGmFdufNldpB2A9xGuKV_YcAk-pxTNa9RnVTjTIhc5a8GVL6pcufM4owV" />
<add key="auth0:Domain" value="amalexp.auth0.com" />
</appSettings>
好的,我想我通过ConfigurationManager.AppSettings
直接删除和插入字符串而不是查看 App.Config 文件解决了这个问题。但我收到“HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出此目录的内容”。错误是另一个故事。