用户成功登录后,我似乎无法掌握政策中设置的声明(在Azure门户中)。
此处的声明对象始终为null。
var type = ClaimsPrincipal.Current.Identities.First().NameClaimType;
var claim = ClaimsPrincipal.Current.FindFirst(type);
我希望我错过了什么......
答案 0 :(得分:1)
你检查ClaimsPrincipal.Current.Claims吗?这些值存储在ClaimsPrincipal.Current.Claims中。我想检查您是否无法从声明页面中的以下代码中获取值。
@foreach (Claim claim in ClaimsPrincipal.Current.Claims)
{
<tr>
<td class="claim-type claim-data">@claim.Type</td>
<td class="claim-data">@claim.Value</td>
</tr>
}
答案 1 :(得分:0)
您的声明标识中不存在NameIdentifier。
Azure b2c不提供此声明。
答案 2 :(得分:0)
你试试下面的代码,它完全正常。
<form action="">
  <input class="regular-checkbox" type="checkbox" name="token" value="visual"><b>   Visual ID</b><br>
  <input class="regular-checkbox" type="checkbox" name="token" value="time"><b>   Time Delay Index</b>
</form>
ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier")