私は webApi を使用しており、フォーム認証を実装しようとしています。私のアプリケーションは simpleMembership を使用しています。何らかの理由で、アプリのデータベースに対して simpleMembership を使用する必要があるときに、コントローラーが Windows 資格情報に戻って、要求が認証されているかどうかを確認しています。
アプリと applicationhost 構成ファイルでウィンドウと匿名認証を無効にしました...他に何をする必要がありますか?
私は webApi を使用しており、フォーム認証を実装しようとしています。私のアプリケーションは simpleMembership を使用しています。何らかの理由で、アプリのデータベースに対して simpleMembership を使用する必要があるときに、コントローラーが Windows 資格情報に戻って、要求が認証されているかどうかを確認しています。
アプリと applicationhost 構成ファイルでウィンドウと匿名認証を無効にしました...他に何をする必要がありますか?
API コントローラーで、認証 (非パブリック コントローラーまたはアクション) を強制する必要がある場合は、
[Authorize]
... 必要に応じて、コントローラまたはアクション レベルで属性を指定します。これは、System.Web.Mvc の属性ではなく、System.Web.Http に実装された属性であることに注意してください。
APIコントローラーに使用するものは、System.Web.Mvc.AuthorizeAttributeが行うように、HttpContext.User.Identity.IsAuthenticatedの代わりにThread.CurrentPrincipal.Identity.IsAuthenticatedをチェックします。
通常、このリンクで説明されている DelegatingHandler を使用して、各リクエストでこのプリンシパルを設定する必要があります。
http://www.piotrwalat.net/basic-http-authentication-in-asp-net-web-api-using-message-handlers/
上記のリンクでは、作成者は基本 HTTP 認証を使用しています。これは、要求ごとに資格情報をプレーン テキストで送信します。ただし、プリンシパルを設定するために独自の認証戦略を実装できます。必要なのはこれだけです。