我在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();
});
答案 0 :(得分:0)
问题在于,默认情况下,密钥存储在本地计算机上。在Web场中,您需要将其保存在每个主机可以访问的位置。我将此添加到了startup.cs及其工作中。不知道为什么,但是没有选择将密钥存储在sql服务器中。
services.AddDataProtection()
.PersistKeysToFileSystem(new DirectoryInfo(@"\\server\path\"));