2

現在、MVCアプリケーションがAPIにリクエストを送信して認証され、「ログイン」するアプリケーション(MVCおよびWeb API)を開発しています。すべてのMVCアプリケーションは、Web APIからベアラトークンを格納して、データを要求する必要があるときはいつでもそれを添付するようにしています。ロールを持つアイデンティティユーザーの生成(Web APIからMVCアプリケーションへ)

プログラムのこの時点で、APIに対する特定のリクエストを行うユーザーとMVCアプリケーション上の特定のページを表示できるユーザーを制限するために、認証とセキュリティトリミングの作業を開始する予定です。これを行うには、私のAPIからロールを取得し、MVC側でアイデンティティユーザーを偽装する必要があります。なぜなら、技術的に既にログインしているからです。私の問題はおそらく単純ですが、アイデンティティユーザーを生成するときにロールを宣言する方法を説明します。今私は明示的に宣言できるテストケースが必要です。そして、APIからロールを渡すと、後でそれを取得できます。

どのようにしてロールから機能的なサンプルを作成するか考えてみましょうか?

private IdentityUser GenerateIdentityUser(string IdNum, string userN) 
     { 
      var newUser = new IdentityUser 
      { 
       Id = IdNum, 
       UserName = userN, 
       // Roles = 
       SecurityStamp = DateTime.Now.Ticks.ToString() 
      }; 

      return newUser; 
     } 

答えて

1

IdentityUserRoles施設には、プライベートセッターを(codeplex source codeを参照します)。 IdentityUserのコンストラクタは常に空のロールリストを作成し、nullにはなりません。あなたはNEWUSERオブジェクトを初期化した後に次の行を追加する必要があります役割を設定するには

newUser.Roles.Add(new IdentityUserRole {UserId = newUser.Id, RoleId = "your role id"}); 
+0

これは素晴らしい仕事をありがとうございました。まさに私が探していたもの。 – tokyo0709

関連する問題