1
Active DirectoryとOwinを使用してユーザーを認証するアプリケーションを作成しました。アプリケーションの範囲では、既存のCMSデータベースで定義されているロールを使用して、カスタムアプリケーション内のユーザーを承認する必要があります。私が試したことは次のとおりです。LinqToSqlリストからクレームを追加するにはどうすればよいですか?
CMSContext _cms = new CMSContext();
var user = @"STRING\" + userPrincipal.Name;
var result = (from rls in _cms.CMSRoles
join urs in _cms.CMSUserRoles on rls.RoleID equals urs.RoleID
join usrs in _cms.CMSUser on urs.UserID equals usrs.UserID
where usrs.Username == user
select rls.RoleName).ToList();
//using foreach to get roles one by one
foreach(var @group in groups)
{
identity.AddClaim(new Claim(ClaimTypes.Role, @groups.?));
}
私は事前に疑問符をお詫びしますが、現在私は立ち往生しています。私は見つけることができないし、このループの中で私がそれらを順番に引き出すことを可能にするものは何も考えていない。
var groups = userPrincipal.GetAuthorizationGroups();
foreach (var @group in groups)
{
identity.AddClaim(new Claim(ClaimTypes.Role, @group.Name));
}
感謝を事前に:私は、私は単純である、ADからのクレームを追加した場合、私は通常、どうなるものをフォローしようとしています!
あなたは私は単なる文字列であると仮定ロール名を、選択されたので、私はあなただけ 'group'値使用するであろう期待::' identity.AddClaim(新しいクレームを(ClaimTypes.Role、@group以下を参照してください。 )); ' –
彼は' result'sを 'foreach 'していませんが、コードサンプルでは公開されていない' groups'を超えています。 @スカニア - グループはどこから来ますか? –
@PatrickArtnerは私の問題の一部でした。私はそれを理解して、すぐに解決策を投稿します – Skullomania