AD B2C直接登录显示{OIDC:LoginHint},而不是电子邮件地址 [英] AD B2C direct sign-in shows {OIDC:LoginHint} rather than email address
本文介绍了AD B2C直接登录显示{OIDC:LoginHint},而不是电子邮件地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的索赔提供程序:
<ClaimsProvider>
<DisplayName>SelfAsserted</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="SelfAsserted-EmailCollect">
<DisplayName>Email</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ContentDefinitionReferenceId">api.selfasserted.profileupdate</Item>
</Metadata>
<IncludeInSso>false</IncludeInSso>
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" DefaultValue="{OIDC:LoginHint}"/>
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" />
</OutputClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
</ClaimsProviders>
我正在使用此URL登录:
https://mytenant.b2clogin.com/cubiksconnectv2.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1A_Signup_Signin_Dev&client_id=myclientId&nonce=defaultNonce&redirect_uri=https%3A%2F%2Flocalhost%3A44381%2Fsignin-oidc&scope=openid&response_type=id_token&prompt=login&login_hint=test@address.com
这就是Login UI的外观。
推荐答案
一种可能的解决方案是向登录页添加JAVASCRIPT以填充login_hint
查询参数中的电子邮件字段。
var _findSearchParameter = function (name) {
var matches = new RegExp('[?&]' + name + '=([^&#]*)')
.exec(window.location.search);
return (matches !== null) ? matches[1] || 0 : false;
};
var loginHintValue = _findSearchParameter('login_hint');
if (loginHintValue) {
$('#email').val(loginHintValue);
}
这篇关于AD B2C直接登录显示{OIDC:LoginHint},而不是电子邮件地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文