【问题标题】:Azure AD B2C customization template errorsAzure AD B2C 自定义模板错误
【发布时间】:2018-04-07 04:14:23
【问题描述】:

我删除了包含 B2C 登录/注册策略自定义 UI 文件的文件夹的存储帐户。意识到我的错误,我创建了一个新的存储帐户并上传了策略文件。我更新了策略配置中的路径。现在,当单击登录时,我得到的不是 Microsoft 表单:

处理请求时发生未处理的异常。

InvalidOperationException: Invalid non-ASCII or control character in header: 0x000D
Microsoft.AspNetCore.Server.Kestrel.Internal.Http.FrameHeaders.ThrowInvalidHeaderCharacter(char ch)

我在OpenIdConnectOptionsSetup_OnRemoteFailure 中设置了一个断点,其中上下文异常显示:

Message contains error: 'server_error', error_description:
'AADB2C90047: The resource 'https://{StorageAccount}.blob.core.windows.net/loginui/customlogin.html' contains script errors preventing it from being loaded.
Correlation ID: fc9f9ac5-14bc-4af4-992c-a2cf0050316d
Timestamp: 2017-10-24 15:10:00Z', error_uri: 'error_uri is null'.

但是,当模板如下所示时,此错误没有多大意义:

<!DOCTYPE html>
<html>
   <head>
       <title>!Add your title here!</title>
   </head>
   <body>
       <div id="api"></div>
   </body>
</html>

我是 Azure 的新手,所以我确定我遗漏了一些明显的东西。我只需要模板再次工作。

【问题讨论】:

  • 您是否在存储帐户上启用了 CORS?
  • 非常感谢。
  • @srm 你能支持 Chris 的回答并将问题标记为已回答吗?
  • @srm 您能否将此问题标记为已回答?

标签: azure user-interface customization azure-ad-b2c policy


【解决方案1】:

(为完整性添加答案。)

Azure AD B2C 使用跨域资源共享 (CORS) 将页面 UI 自定义文件加载到最终用户的浏览器。

如果将自定义文件部署到存储帐户,则需要您在存储帐户上允许 CORS,如 here 所述。

然后您可以测试是否已按照 here 记录的要求允许 CORS。

【讨论】:

  • 谢谢。我希望将自定义文件托管在应用程序中;必须将 Azure AD B2C 的 CORS 指令添加到应用配置中。你的回答提供了线索。
【解决方案2】:

我遇到了同样的问题。解决方案是在您的网络应用程序的设置中放置“*”。这是因为在您的登录页面调用后,您首先访问“b2clogin.com”,然后使用特定设置自动返回到您的 Web 应用程序。但是,如果您的“CORS”设置未设置,则从“b2clogin.com”到您的应用程序的重定向将受到限制。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多