6

IISでは、クライアント証明書を「無視」、「許可」、「要求」できます。

ASP.NET WebAPI(少し前にリリースされたばかりのバージョン4.0)では、「無視」または「要求」する機能しか持っていないようです。

デフォルトでは、クライアント証明書は無視されます...したがって、このステートメントは常にnullを生成します。

var cert = actionContext.Request.GetClientCertificate();

しかし、設定でこのフラグを設定すると、次のようになります。

config.ClientCredentialType = HttpClientCredentialType.Certificate;

次に、クライアント証明書を取得します...しかし、匿名アクセスを許可することはできなくなりました。

匿名クライアントに403「リモートサーバーがエラーを返しました:(403)禁止」というエラーが表示されるようになりました。

IISのように一種の「許可」を行うことはできますか?

4

2 に答える 2

2

これは、セルフホストシナリオでX509証明書を使用する場合の既知の制限です。実際の制限は、クライアント証明書に関する許可オプションがないWCFの基になるトランスポートバインディングによるものです。

ただし、匿名やウィンドウなどの他のオプションを使用して、複数の認証スキームを許可することはできます。私たちはWCFチームと協力して、匿名証明書とx509証明書でもそのサポートを追加できるかどうかを調べています。

これが明らかになることを願っています。

于 2012-10-05T16:47:56.673 に答える
0

提供された証明書が無効である可能性がありますか?その場合は、次のことが役立ちます 。RemoteCertificateValidationCallback

于 2012-09-11T11:00:26.517 に答える