我是Azure Active Directory登录的新手,我使用“云 - 单一组织”身份验证尝试了MVC 5应用程序。
在我的azure帐户中,我在默认的活动目录文件夹中设置了多个用户。其中很少有人通过向导添加为“组织中的新用户”,这些用户来自Windows Azure Active Directory,其中很少来自实际的Microsoft帐户。
当我启动应用程序并以Windows Azure Active Directory中的一个来源登录时,我会登录并且应用程序在右上角显示'Hello,john.doe @ domain.com'
但是,当我从Microsoft帐户登录时,我也登录,但在右上角,应用程序显示为“你好!”没有真实的帐户名称。只是感叹号。我想这不是正确的行为,对吗?
我正在使用VS2013社区版,并通过IIS express直接从VS启动应用程序。
更新:
对于Azure Active Directory上列出的来自Microsoft Account的帐户,应用程序似乎无法检索任何信息 - 因此User.Identity.Name为空或null。有没有人有线索?
由于
答案 0 :(得分:3)
我得到了礼貌:)
在global.asax
中添加此块protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
{
ClaimsIdentity id = ((ClaimsIdentity)User.Identity);
Claim claim = id.FindFirst(ClaimTypes.Email);
if (claim != null)
{
string email = claim.Value;
id.AddClaim(new Claim(ClaimTypes.Name, email));
}
}