OpenIddict令牌请求被拒绝,因为授权代码或刷新令牌无效

时间:2018-11-15 15:38:33

标签: angular6 iis-8 asp.net-core-2.1 round-robin web-farm-framework

我在IIS服务器上托管了一个ASP.NET Core 2.1 Angular 6应用程序。我的刷新令牌无效,出现了问题。我有一个IIS ARR Round Robin群集。只有一台服务器处于联机状态,一切正常。但是,当多个服务器联机时,仅当对发出令牌的服务器发出请求时,我的刷新令牌才有效。

IV将其添加到了startup.cs中,但没有成功

 app.UseForwardedHeaders(new ForwardedHeadersOptions
            {
                ForwardedHeaders = ForwardedHeaders.All
            });

            string XForwardedPathBase = "X-Forwarded-PathBase";
            string XForwardedProto = "X-Forwarded-Proto";

            app.Use((context, next) =>
            {
                if (context.Request.Headers.TryGetValue(XForwardedPathBase, out StringValues pathBase))
                {
                    context.Request.PathBase = new PathString(pathBase);

                }

                if (context.Request.Headers.TryGetValue(XForwardedProto, out StringValues proto))
                {
                    context.Request.Protocol = proto;
                }

                return next();
            });

1 个答案:

答案 0 :(得分:0)

问题在于,默认情况下,密钥存储在本地计算机上。在Web场中,您需要将其保存在每个主机可以访问的位置。我将此添加到了startup.cs及其工作中。不知道为什么,但是没有选择将密钥存储在sql服务器中。

 services.AddDataProtection()
      .PersistKeysToFileSystem(new DirectoryInfo(@"\\server\path\"));

https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview?view=aspnetcore-2.1