Azure B2C внедряет другой HTML-код, несмотря на то, что LoadUri имеет такое же HTML-содержимое.

Я использую настраиваемые политики, и все работает отлично, за исключением того, что я не понимаю следующего странного поведения введенного HTML. Я работаю над процессом сброса пароля и адаптировал стартовый пакет.

В ContentDefinition и независимо от версии макета (здесь 2.1.2, но проблема возникает и для 2.1.0)

<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.2</DataUri>

Я получаю другой введенный HTML-код только в зависимости от того, использую ли я страницу по умолчанию

<LoadUri>~/tenant/templates/AzureBlue/selfAsserted.cshtml</LoadUri>

или мой собственный,

<LoadUri>https://mytenant.blob.core.windows.net/b2cweb/selfasserted.html</LoadUri>

Но эта настраиваемая страница содержит точно такой же HTML-код, что и страница AzureBlue. В частности, я перешел на страницу /tenant/templates/AzureBlue/selfAsserted.cshtml, скопировал содержимое html и вставил его в свой собственный файл в blobstorage.

Ожидаемый результат

Я ожидаю, что html-страница, на которой вводится div id = api, будет точно такой же, если я назову LoadUri один или два. Больше ничего в файлах настраиваемой политики не изменяется.

Результат

  1. Если я использую значение по умолчанию LoadUri, кнопка отмены отображается чуть ниже div id = api, как и ожидалось для правильного формата документа html.

введите описание изображения здесь

  1. Если я использую свою настраиваемую страницу, которая снова содержит тот же html, но живет в blobstorage, кнопка отмены появляется под кнопкой продолжения в html (но отображается сверху через абсолютное позиционирование css)

введите описание изображения здесь

Также обратите внимание на появление пустого div с кнопками class = в начале div id = api.

Мне нужно понять, что происходит, с целью понимания, и в идеале я хотел бы, чтобы сгенерированная кнопка отмены выглядела так же, как AzureBlue по умолчанию.

Я проверил, что старый классический пользовательский поток помещает кнопку внизу, поэтому я как будто использую версию 1.2.0, но только для своей настраиваемой страницы, тогда как мое определение содержимого всегда 2.1.2 или 2.1.1.


person Octopus    schedule 10.03.2021    source источник
comment
Спасибо @Octopus, и я бы рекомендовал использовать настраиваемую страницу, как определено вами, чтобы избежать проблем с рендерингом. Ядро политики Azure B2C и макет страницы тесно связаны. Следите за изменениями версий макета страницы в документе - docs .microsoft.com / en-us / azure / active-directory-b2c / page-layout.   -  person Jit_MSFT    schedule 11.03.2021
comment
Извините, но это не ответ на вопрос. Если я использую свою настраиваемую страницу, я получаю другую инъекцию, тогда как изначально я использую тот же html, на котором размещен div id = api. Ожидается ли, что у меня будет другой рендеринг, когда я использую один и тот же макет страницы в обоих случаях? Пожалуйста, предоставьте дополнительную информацию. Я уже много раз просмотрел документы.   -  person Octopus    schedule 11.03.2021
comment
Это ожидается из-за механизма политик и расположения хранилища с предопределенным сервером CORS и соответствующими связанными файлами метаданных для рендеринга. Поэтому используйте передовые методы, представленные в документе.   -  person Jit_MSFT    schedule 11.03.2021
comment
Если вы отправите ответ, я могу его принять. Спасибо   -  person Octopus    schedule 16.03.2021
comment
@Jit_MSFT Можете ли вы опубликовать ответ?   -  person Allen Wu    schedule 29.03.2021


Ответы (1)


Спасибо Octopus, пожалуйста, найдите тот же ответ здесь.

Это ожидается из-за механизма политики и расположения хранилища с предопределенным сервером CORS и соответствующими связанными файлами метаданных для рендеринга. Поэтому, пожалуйста, используйте передовые методы, представленные в документе - https://docs.microsoft.com/en-us/azure/active-directory-b2c/page-layout

person Jit_MSFT    schedule 14.04.2021