ここで任意のページを閲覧したActive Directoryからのロードユーザデータは私の開発環境です:ASPネットMVCコアユーザーが
- イントラネットサイト
- Active Directoryの認証/承認
- のAspネットコア
ユーザーが最初にアプリケーションの任意のページに入力するときに、Active Directory属性に格納されたデータを取得しようとしています。すべてのユーザーの権利とアクセス許可、employeeid、studentidなどは、AD属性とセキュリティグループに格納されます。いくつかの属性もウェブサイト上に表示する必要があります。
....など- http://mysite/Home/Index
- http://mysite/Student/Index
- http://mysite/Student/MyJobs
- http://mysite/Staff/Applications
...さんは私のウェブサイトは次のURLを得たとしましょう210
すべてのユーザーは、他のイントラネットポータルから自由にウェブサイトのいくつかの領域/ URLにアクセスすることができ、その基準を満たすためにコードをどこに書くべきかわかりません。問題は、http://mysite/LoginやAuthenticateなどの特定のエントリポイントが存在しないことです。存在する場合は、その単一のエントリポイントでADからすべてのユーザーの詳細と権限をロードできます。
MVC5時代、カスタムグローバル認可属性を使用し、BaseControllerに配置すると、そのADデータを読み込むために他のすべてのコントローラから継承されました。最初のヒット時にADのデータをセッションに入れ、静的クラスを使用してビューに表示し、コントローラで使用します。しかし、MVCコアでいくつかの調査を行ったところ、古くなったとのこともあり、カスタム属性の代わりにAuthorize Policyを使うべきです。
Active Directoryからデータを取得することは、すでに私の古いWebサービスを使用して達成されており、ADをサポートしていない.Netコアについては心配する必要はありません。
私はポリシーに関するチュートリアルを見て、クレームとカスタムユーザーマネージャについて何かを見ました。私はActive Directoryからオブジェクト全体(おそらくScoped Object DI)にデータをロードするためにどのユーザーを使用すべきかを決めることができませんでした。
私は主張にデータをロードする必要が 例:...
var claims = new List<Claim>();
claims.Add(new Claim("UserName", "John.Smith", ClaimValueTypes.String, Issuer));
claims.Add(new Claim("RefNo", "02343001", ClaimValueTypes.String, Issuer));
claims.Add(new Claim("Email", "[email protected]", ClaimValueTypes.String, Issuer));
それとも私がカスタマイズSignInManagerとIdentityUserを書くべき属性? 例:...
public class ApplicationUser : IdentityUser
{
public string RefNo { get; set; }
public string Email { get; set; }
}
はどこでも、私はADと負荷データを確認するために私のコードをそこに置くことができますか? セッションデータを使用するのではなく、その請求対象オブジェクトにデータを保存する必要がありますか?
私に助言してもらえますか?私が何かを見逃して、私の考えがうまくいかないと批判することは自由に感じてください。
ありがとうございました。他のすべてのプロジェクトで既に使用しているWebサービスアプローチに固執すると思います。 私は既にAuthsについてあなたの2つの動画を見てきましたが、私はRequirementHandlerとPolicyを作成してBaseControllerに入れて同じことをしようとしています。 したがって、ユーザーが自分のウェブサイト内の任意のエリアに当たると、ADの情報がロードされます。クレームの変革ミドルウェアは私が知らなかったものです。私はあまりにもそれについていくつかの研究を行います。 – TTCG
ポリシーでそれを行うのは問題ありません。パフォーマンスのためにしばらくキャッシュしてください。 – blowdart
新しいライブラリAD <--> ASPNetCoreは1週間前にリリースされています。 (https://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.ActiveDirectory/)。 あなたに確認したいのですが、それはWindows認証のみです。これは、ADとVice Versaからデータを取得することとは関係ありません。ありがとう。 – TTCG