のは、私たちがあるウェブサイトを持っているとしましょう:2つの認証クッキー
- 管理セクション
- Clientセクション
- ユーザーレビュー(ビジター)セクション
明らかに、最後の1つ(ゲストセクション)には管理者がアクセスすることができますが、管理者とクライアントのみがアクセスすることができます。 管理者とクライアントは異なるモデルクラス(管理者とユーザーに対応する)を持ち、それぞれ異なるデータベースに格納されており、それぞれに異なる認証クッキーを使用したいと考えています。 ASP.NET Core Identityを使用することは可能ですか?
は、我々はAddIdentityの初期化中のCookieNameプロパティを使用しようとしたが、それはアクセスがそのApplicationCookieを表示されます - 2番目の定義は、単に最初のものに書き換えるので、同じオブジェクトは、次のとおりです。
services
.AddIdentity<User, UserRole>(opts => {
opts.Cookies.ApplicationCookie.CookieName = "Client";
opts.Cookies.ApplicationCookie.LoginPath = new PathString("/login");
. . . . . .
});
services
.AddIdentity<Admin, AdminRole>(opts => {
//the following lines rewrite cookie options from client's to admin's
opts.Cookies.ApplicationCookie.CookieName = "Admin";
opts.Cookies.ApplicationCookie.LoginPath = new PathString("/admin/login");
. . . . . .
});
はあなたが各役割に1人のアイデンティティを持っていることになっていない、あなたは、各セキュリティの必要性のための1つの役割を持っていることになっています。あなたは、ほとんどの場合、あなたがさて、あなたがそれらを別のデータベースに格納されているかもしれませんが、アプリケーションの観点から、彼らはすべてのユーザーであるいくつかのロジック –
に応じて、ユーザーまたは管理DBを照会するかどうかを決定することができますカスタムのIdentityStoreを必要としています。私はこれがあなたの質問に答えないことを知っているが、私が言っていることは多分あなたのデザインを再考すべきであるということです。 – JuanR
2つ(または3つ)の異なるアプリケーションが好きです。 – Mike