2017-03-07 11 views
0

間のスイッチがappsettings.jsonで例えばオプションに応じて、ビルドにWindowsとユーザー認証(ASPネットコアアイデンティティ)を切り替えることがAspでネットコアでのベストプラクティスはありますか?のAspネットコア:Windowsとユーザー認証

答えて

0

私はそれが「ベストプラクティス」だと言っていないんだけど、私はあなたにそれを達成するために私には良いと思われる方法を伝えることができます。 Windows認証の場合

、それは主に、正しくご使用の環境を設定するための問題です。たとえば、あなたがIISを使用する場合は、/ケストレルあなたは、WebListenerのため同じものを窓のアイデンティティを転送するようにIISを設定する必要があります...私はここに少しことを説明しました:NTLM authentication on specific route in ASP.NET Coreので、一度きちんとセットアップ、[Authorize]により保護コントローラのアクション属性はHttpContext.User.Identityとなり、WindowsIdentityとなります。

標準のASP.Net Core Identityメカニズムの場合、IDを取得するリクエストとともに送信されるCookieを使用するCookieAuthenticationMiddlewareを使用している可能性があります。かなり標準。 appsettings.jsonからのいくつかの設定に応じて、私は私自身のミドルウェアを作成し、両方を組み合わせること

は非常に簡単です、あなたはAuthenticationHandler、通常は1から1 derivatingがAuthenticationOptionsからderivatingとの私の設定に応じて、AuthenticationMiddlewareから1つのクラスderivatingが必要メソッドprotected override async Task<AuthenticateResult> AuthenticationHandler::HandleAuthenticateAsync()私はWindowsからのIDを検証するか、代わりにコードCookieAuthenticationMiddlewareから自分自身を分岐します。良いニュースはASP.Net Coreはオープンソースなので、実際にすべてのソースをgithubのMicrosoft.AspNetCore.Authentication.Cookiesから得ることができます。

+0

アプリがIISで起動したかどうかを確認する方法はありますか?そうでなければAsp Net Core Identityを使用しますか? – Palmi

+0

何かここで既にアクシデッドhttps://github.com/aspnet/Security/issues/967しかし、私はそれを行う方法を知らない。 – Daboul

関連する問題