В моем приложении я пытаюсь использовать пользовательский атрибут extension_Role
, который должен быть сохранен пользователю при регистрации.
Я бы хотел один класс пользователей, скажем, "Клиент" «Чтобы зарегистрироваться через мобильное приложение и не нужно указывать поле« Роль », просто закажите его по умолчанию« Клиент ». Второй класс пользователей зарегистрируется с помощью веб-приложения, и я бы хотел, чтобы они могли выбрать роль из выпадающего списка, например «Поддержка», «Администратор» и т. Д. c для этого нужно предоставить две версии SignUpOrSignin.xml
.
Используя образцы файлов политики, которые Microsoft предоставляет в стартовом пакете Я определил свой пользовательский ClaimType
(без UserInputType
) в TrustFrameworkBase.xml
и настроил идентификаторы клиента и объекта. Я также изменил AAD-UserWriteUsingLogonEmail
TechnicalProfile
, чтобы сохранить утверждение.
Я застрял с фактическим сохранением значения по умолчанию. Я попытался добавить:
<OutputClaim ClaimTypeReferenceId="extension_Role" AlwaysUseDefaultValue="true" DefaultValue="Customer" />
к SignUpOrSignin.xml
, однако, когда я запускаю поток, я получаю ошибку 500, как только я нажимаю на кнопку регистрации. Я думаю, это потому, что он ожидает, что поле extension_Role
должно быть заполнено пользователем.
Единственный способ, которым я смог сохранить extension_Role
, - это добавить его в LocalAccountSignUpWithLogonEmail
TechnicalProfile
в TrustFrameworkBase.xml
. Например:
<OutputClaim ClaimTypeReferenceId="extension_Role" DefaultValue="Customer"/>
Однако, поскольку это в базовом файле, оно используется всеми потоками входа в систему, что не позволило бы мне установить разные значения для разных потоков регистрации.
Что такое правильный способ моделировать этот вид потока двойной регистрации?