我的代码
中有以下几行 var issuer = "https://" + ConfigurationManager.AppSettings["auth0:DOMAIN"] + "/";
var audience = ConfigurationManager.AppSettings["auth0:CLIENT_ID"];
var secret = TextEncodings.Base64Url.Decode(
ConfigurationManager.AppSettings["Auth0:CLIENT_SECRET"]);
在最后一个语句中抛出一个null异常。这是堆栈跟踪的一部分:
[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正在寻找一个String参数,但我在里面有另一个方法。不知道为什么它不起作用,因为我从另一个github repo复制。
以下是我的AppSettings,它位于Web.Config file:
<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服务器配置为不列出此目录的内容。“错误是另一个故事。
答案 0 :(得分:0)
代码中的设置名称中有空格和下划线,但app.config中没有。