IISでは、クライアント証明書を「無視」、「許可」、「要求」できます。
ASP.NET WebAPI(少し前にリリースされたばかりのバージョン4.0)では、「無視」または「要求」する機能しか持っていないようです。
デフォルトでは、クライアント証明書は無視されます...したがって、このステートメントは常にnullを生成します。
var cert = actionContext.Request.GetClientCertificate();
しかし、設定でこのフラグを設定すると、次のようになります。
config.ClientCredentialType = HttpClientCredentialType.Certificate;
次に、クライアント証明書を取得します...しかし、匿名アクセスを許可することはできなくなりました。
匿名クライアントに403
「リモートサーバーがエラーを返しました:(403)禁止」というエラーが表示されるようになりました。
IISのように一種の「許可」を行うことはできますか?