2015-04-19 243 views
4

我是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

回答

3

我得到了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