如何在 IdentityServer4 中允许 Google 字体

How to Allow Google fonts in IdentityServer4

要在 IdentityServer3 中使用 Google 字体,以下 Content-Security-Policy 从未起作用:

<meta http-equiv="Content-Security-Policy" 
      content=" style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
                font-src 'self' 'unsafe-inline' https://fonts.gstatic.com data:">

相反,我们在 idsrvApp.UseIdentityServer 构造函数中配置了 CspOptions,它确实起作用了:

CspOptions = new CspOptions {
    FontSrc = "https://fonts.gstatic.com",
    StyleSrc = "https://fonts.googleapis.com",
    Enabled = true
}

如何在 IdentityServer4 中配置 CspOptions?我找不到它。

对于其他遇到问题的人,需要修改 IdentityServer4 快速启动文件随附的 SecurityHeadersAttribute.cs 文件。附加以下行修复它:

var csp = "default-src 'self'; object-src 'none'; frame-ancestors 'none'; sandbox allow-forms allow-same-origin allow-scripts; base-uri 'self';";

// These two lines enable google fonts
csp += "font-src 'self' https://fonts.gstatic.com;";
csp += "style-src 'self' https://fonts.googleapis.com;";

文件位于quickstart/SecurityHeadersAttribute.cs