0

ASP.NET IDを使用して既存のMVC Webアプリケーションを拡張して認証しています。現在ログオンしているユーザーのユーザー名を取得するのにSystem.Web.HttpContext.Current.User.Identity.Nameを使用します。ASP.NET IDとOWIN認証をAzureに統合すると、User.Identity.Nameがnullになる。B2C

hereというサンプルコードを使用してOWIN認証に切り替えると、Nameプロパティはnullになり、既存のアプリケーションでエラーが発生します。 IDを無効にしないでIIdentity.Nameの値を変更することは可能ですか?

the referenced tutorialの下部に説明したように
+0

わからないが、それはしませんもはや 'ヌル 'になります:)以前のように' username'にはなりません。 – spottedmahn

答えて

1

、あなたのような、ClaimsPrincipal.Currentオブジェクトを介して利用者の主張にアクセスする必要があります:あなたはあなたのアプリケーションに `表示NAME`を返す場合主張

// Controllers\HomeController.cs 

[Authorize] 
public ActionResult Claims() 
{ 
    Claim displayName = ClaimsPrincipal.Current.FindFirst(ClaimsPrincipal.Current.Identities.First().NameClaimType); 
    ViewBag.DisplayName = displayName != null ? displayName.Value : string.Empty; 
    return View(); 
} 
関連する問題