【问题标题】:Getting 404 for jwt token request in release mode在发布模式下为 jwt 令牌请求获取 404
【发布时间】:2016-09-05 17:54:33
【问题描述】:

我是 ASP.NET 或 C# 编程的新手。在我的新任务中,我正在添加身份验证中间件、检查 JWT 令牌以进行验证等。 我按照这个 URL 将身份验证中间件添加到我的 ASP.net 应用程序 - http://odetocode.com/blogs/scott/archive/2015/01/15/using-json-web-tokens-with-katana-and-webapi.aspx

虽然我在访问 /token url 时成功获取了生成的令牌,但这在仅在调试模式下运行时是可能的。如果我将构建配置更改为 Release,访问 /token url,开始给我 404 错误。

我比较了 Visual Studio 2013 输出视图中显示的输出,发现在调试模式下额外的 2 行在发布模式下没有显示。 这两行是 -

“MetaAPI.vshost.exe”(CLR v4.0.30319:MetaAPI.vshost.exe):已加载“C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.Extensions\v4.0_4.0.0。 0__31bf3856ad364e35\System.Web.Extensions.dll'。无法找到或打开 PDB 文件。

“MetaAPI.vshost.exe”(CLR v4.0.30319:MetaAPI.vshost.exe):已加载“C:\windows\Microsoft.Net\assembly\GAC_32\System.Web\v4.0_4.0.0.0__b03f5f7f11d50a3a\ System.Web.dll'。无法找到或打开 PDB 文件。

我不知道这些是否表明问题的根源。我在项目中添加了对 System.Web 和 System.Web.Extensions 的引用,但没有帮助。

如何解决这个问题?有什么建议吗?

【问题讨论】:

    标签: asp.net-web-api owin jwt katana


    【解决方案1】:

    很可能是因为#if DEBUG 条件

    public class MyOAuthOptions : OAuthAuthorizationServerOptions
    {
        public MyOAuthOptions()
        {
            TokenEndpointPath = "/token";
            AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(60);
            AccessTokenFormat = new MyJwtFormat();
            Provider = new MyOAuthProvider();
            #if DEBUG // HERE
                AllowInsecureHttp = true;
            #endif
        }
    }
    

    Release ModeMyOAuthOptions 中,预计流量将超过HTTPS。如果您在本地机器上测试您的应用程序或不安全的 http,只需删除 #if DEBUG#endif 并保留 AllowInsecureHttp = true

    请记住,尽管在​​生产环境中 HTTPS 是必须的,上面的代码应该可以正常工作。

    【讨论】:

    • 谢谢,确实是这个问题,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 2017-10-21
    • 1970-01-01
    • 2018-11-12
    • 2012-05-11
    • 2017-10-19
    • 1970-01-01
    相关资源
    最近更新 更多