Azure Active Directory登录

Azure Active Directory登录

问题描述:

我是Azure Active Directory登录的新手,我尝试了使用“云 - 单一组织”身份验证的MVC 5应用程序。Azure Active Directory登录

在我的天蓝色帐户中,我已经在默认的活动目录文件夹中设置了多个用户。他们中很少有人通过向导添加为“组织中的新用户”,这些用户来自Windows Azure Active Directory,其中很少一部分来自实际的Microsoft帐户。

当我启动应用程序,并登入,从Windows Azure的Active Directory的来源,我得到登录一个和应用程序上说右上角的“你好,[email protected]

但是,当我从Microsoft帐户登录时,我也登录,但在右上角应用程序显示'您好,!'没有真实的帐户名称。只是感叹号。我想这不是正确的行为,对吧?

我使用VS2013社区版,并通过IIS直接从VS启动应用程序。

UPDATE:

似乎对这些都对列为微软帐户来源Azure的Active Directory帐户,应用程序无法获取任何信息 - 因此User.Identity.Name为空或空。有人有线索吗 ?

感谢

+1

嗨,我也面临同样的问题。当我有用户键入“我的组织中的新用户”一切正常。但是当我有用户类型=“用户与现有的Microsoft帐户”登录工程文件,但我得到User.Identity.Name = null ..请让我知道,如果你得到的解决方案。 – Mahesh

+1

如果波纹管的答案为你工作,那么请标记为答案! – Mahesh

我得到了salution :)

在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)); 
    } 
} 
+0

此方法不是惯用的ASP.NET MVC,因为它使用Global.asax而不是OWIN管道。 – Dai