私のプロジェクトはフロントエンドとAPIが同じソリューションになっているので、フロントエンドコントローラはIDを使用しているため、APIコントローラのみを認証するカスタム認証ミドルウェアを構築しています。Asp.Netコアカスタム認証ミドルウェアのスキーム
私はこの
services.AddIdentity<ApplicationUser, IdentityRole>(config =>
{
config.User.RequireUniqueEmail = true;
config.Password.RequiredLength = 4;
config.Cookies.ApplicationCookie.AuthenticationScheme = "Cookie";
config.Cookies.ApplicationCookie.AutomaticAuthenticate = false;
}).AddEntityFrameworkStores<DbContext>()
.AddDefaultTokenProviders();
ようStartup.cs上のアイデンティティのための偽AutomaticAuthenticateオプションを設定していますそして、私のカスタムミドルウェアのために、私はカスタムオプションを実装し、私は今、この
app.UseApiAuthorizationMiddleware(new ApiAuthenticationOptions
{
AuthenticationScheme = "Api",
AutomaticAuthenticate = false
});
ときにやりました私は使用しようとしました
[Authorize(AuthenticationSchemes = "Api")]
私のコントローラでVisul Studioは私に教えてくれますenticationSchemesが見つかりませんでした。私は見つからず、assembyまたは参照しています。クイックアクションツールは
"System.Net.Primitives": "4.0.11-rc2-24027"
を追加するために私に語ったが、私は、バージョン4.0.10で終わると、私はこれまで行われています何が良いか、実際に場合であれば、それは私はわからないんだけど...コンパイルされません。ここに問題があります。
私はそれがはっきりしていることを望みます。適切に私はAuthenticationMiddlewareをから継承ミドルウェアを実装するだけでなく、AuthenticationHandlerから延びており、すべてのロジックは、メソッドHandleAuthenticateAsync()に行くの認証ハンドラを実装するだけでなく、持っていたカスタム認証ミドルウェアを実装するために
おかげ
アイデンティティを自動化する方法ではないかと疑問に思うのですか? –
app.UseApiAuthorizationMiddlewareをapp.UseIdentityより前に呼び出しますか?ミドルウェアはAuthenticationMiddlewareを継承していますか? – Set
私はそれを呼び出し、私はauthenticationmiddlewareから継承する –