使用TextEncodings

时间:2015-06-04 02:41:08

标签: asp.net exception encoding auth0

我的代码

中有以下几行
    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服务器配置为不列出此目录的内容。“错误是另一个故事。

1 个答案:

答案 0 :(得分:0)

代码中的设置名称中有空格和下划线,但app.config中没有。