自定义 B2C 登录页面上的访问被拒绝消息

Access denied message on custom B2C login page

我有一个 MVC 应用程序,我使用 Azure B2C 来处理登录和登录。

我在新门户中输入了 Custom Page URI。我可以毫无问题地导航到此 URL。我创建了一个普通的 .html 页面:

<div id="api" data-name="IdpSelections">
    <div class="intro">
        <p>Sign up</p>
    </div>

    <div>
        <ul>
            <li>
                <button class="accountButton" id="GoogleExchange">Google+</button>
            </li>
            <li>
                <button class="accountButton" id="SignUpWithLogonEmailExchange">Email</button>
            </li>
        </ul>
    </div>
</div>

我把这个 html 放在项目的根目录下,所以可以这样访问 http://myUrl/SignInPage.html

web.config 我添加了一行来启用 CORS:

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <clear />
      <add name="Access-Control-Allow-Origin" value="*" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

问题是,当该页面应该显示时,IE 显示此错误消息:

Sorry, but we're having trouble signing you in.

We track these errors automatically, but if the problem persists feel free to contact us. In the meantime, please try again.

Correlation ID:[Some Guid]

Timestamp:2016-04-07 09:21:03Z

AADB2C90065: A B2C client-side error 'Access is denied. ' has occurred requesting the remote resource.

我该怎么做才能让它正常工作?

仅参考documentation,关键要求如下:

  • Div 元素,ID 为 api。
  • CORS header 到位。
  • 通过 HTTPS 访问。

我可以看到您的 div 元素正确并且 header 就位,但不确定 HTTPS 访问。获取此设置的一个很好的工具链接自文档,可以在官方 Azure documentation.

上找到

我还会检查您的 header,您正在发送 Access-Control-Allow-Origin,但这是一个回复 header,确认这是要使用的正确 header。有效请求和响应 header 在 W3 网站上。

这里列出了我能看到的唯一请求 header:

  • 来源
  • Access-Control-Request-Method
  • Access-Control-Request-Method
  • Access-Control-Request-Method
  • Access-Control-Request-Headers