2016-11-12 5 views
0

IS3/MR/IDMの組み合わせがインストールされていて、すべて正常に動作しています。私が今必要とするのは、ログインしているユーザー(ID、名前など)をすべてのMVCコントローラで使用できるようにすることです。そのため、他のすべてのコントローラがベースコントローラを継承するようにベースコントローラを作成することです。これは、これを達成し、おそらくいくつかのサンプルコードを提供するための最良の方法である場合クライアントアプリケーション間でユーザーオブジェクトにアクセス

誰もがアドバイスしてもらえますか?あなたはすでに正常アイデンティティ・サーバー3に対して認証されていると仮定すると、

+0

あなたはどのスタックにいますか?あなたはユーザーと何を達成する必要がありますか?より最近の.NETを想定すると、MVCコントローラには、既にClaimsPrincipalにキャスト可能なUserオブジェクトがあります。 – beavel

答えて

0

は、あなたはすべてすでに設定されなければなりません。あなたはCallApiControllerで見れば、あなたがこのメソッドに

 // GET: CallApi/UserCredentials 
    public async Task<ActionResult> UserCredentials() 
    { 
     var user = User as ClaimsPrincipal; 
     var token = user.FindFirst("access_token").Value; 
     var result = await CallApi(token); 

     ViewBag.Json = result; 
     return View("ShowApiResult"); 
    } 

を見つけることができますユーザー変数は、ユーザーの名前、IDなどの請求がすでに含まれている必要があります。だから、もちろん

var id = user.FindFirst(Constants.ClaimTypes.Subject).Value; 

var firstName = user.FindFirst(Constants.ClaimTypes.GivenName).Value; 

var middleName = user.FindFirst(Constants.ClaimTypes.MiddleName).Value; 

var lastName = user.FindFirst(Constants.ClaimTypes.LastName).Value; 

、すべてのユーザー情報のお店で、その情報を持っていると私は、彼らが存在しない場合に発生しますエラーをチェックしていないよということを前提としていること。

関連する問題