我们有一个ASP.Net MVC 5应用程序,它针对Azure AD进行身份验证。
当用户浏览控制器操作时,我们希望从ClaimsPrincipal获取objectidentifier,因此我们使用以下代码:
var objectIdentifier = Guid.Parse(new ClaimsPrincipal(identity)
.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier")
.Value);
这完全符合IE 11中的预期 - 身份有9个声明,包括objectidentifier。
当我们运行完全相同的代码但使用Chrome登录时,该身份只有7个声明并且不包含objectidentifier。
知道为什么会这样吗?
答案 0 :(得分:1)
很抱歉回答我自己的问题,但事实证明我们使用2个不同的用户身份登录的两个浏览器,其中一个是AAD中的用户,另一个是添加到AAD的LiveId。后者具有较少的与之相关的属性,包括没有objectidentifier。