2016-11-08 2 views
3

私はまだasp.netコアでIDを学習しています。クレームベースのトークン認証を行っています。 ほとんどの例は、現在ログインしているユーザーに関するものです。私の場合、私のRPCサービスは、IDデータベース内のあるユーザのユーザ名&のパスワードを受信して​​います。私は、このような資格情報を持つユーザーが ASP.NETコアを使用している別のユーザーのクレームを取得する方法

  • は、ユーザが存在する場合はそう

  • を確認するために、そのユーザーのすべての請求を得る存在することを確認し

    1. に必要な、私はこれを使用しています:

      ApplicationUser applicationUser = await _userManager.FindByNameAsync(username); 
      bool exist = await _userManager.CheckPasswordAsync(applicationUser, password); 
      if (!exist) 
      { 
          // log and return 
      } 
      

      2番目の手順を正しく行う方法がわかりません。私はすべてのユーザーの主張を収集するために私は単純なlinqを行うことができたと思うが、私はアイデンティティの方法を使用してより良い方法があると確信しています。

    +2

    '_userManager.GetClaimsAsync(applicationUser)'を参照してください? – haim770

    +0

    それでした。私は主なユーザーとそのユーザーのclaimIdentityを取得しようとすることでそれを複雑にしていました。回答としてマークしてください。 – user1019042

    答えて

    4

    GetClaimsAsync()メソッドを使用する必要があります。たとえば:

    var claims = await _userManager.GetClaimsAsync(applicationUser); 
    

    MSDN

    関連する問題