1

これについて多くの未解決の質問があります。どうやら多くの開発者がpastこの問題を抱えていますが、私はどんなソリューションも投稿していません。クライアント証明書をリクエストする

私は、ASP.NET MVC 5 Webアプリケーション用のスマートカード(X.509 CAC)を読み込もうとしています。

var request = HttpContext.Request; 
var cert = request.ClientCertificate; 

証明書には空の値があります。

問題は、他のウェブサイトに表示されているようにユーザー証明書情報を要求するダイアログが表示されていないようです。 このダイアログを公開するにはどうすればよいですか?

SSLを有効にして実行しています。私のapplicationHost.configはそれでこれを持っている:

<access sslFlags="SslRequireCert" /> 

注:

<authentication> 
     <anonymousAuthentication enabled="false"/> 
     <basicAuthentication enabled="false" /> 
     <clientCertificateMappingAuthentication enabled="false" /> 
     <digestAuthentication enabled="false" /> 
     <iisClientCertificateMappingAuthentication enabled="true" manyToOneCertificateMappingsEnabled="true"> 
     <manyToOneMappings> 
      <add name="Authentication Certificate" 
       enabled="true" 
       permissionMode="Allow" 
       userName="foo" 
       password="bar"> 
       <rules> 
        <add certificateField="Issuer" certificateSubField="CN" matchCriteria="*localhost*" compareCaseSensitive="false" /> 
       </rules> 
      </add> 
     </manyToOneMappings> 
     </iisClientCertificateMappingAuthentication> 
     <windowsAuthentication enabled="false"> 
      <providers> 
       <add value="Negotiate" /> 
       <add value="NTLM" /> 
      </providers> 
     </windowsAuthentication> 
    </authentication> 

はここに私のアクセス・ノードであるユーザ名/パスワード= fooの/バーが疑わしいです。なぜ、これはユーザー側には何も配置されませんでしたか?これに関連する必要なサービスアカウントはありますか?私はまた、より単純な構成を試みた

<authentication> 
     <anonymousAuthentication enabled="false" userName="" /> 
     <basicAuthentication enabled="false" /> 
     <clientCertificateMappingAuthentication enabled="true" /> 
     <digestAuthentication enabled="false" /> 
     <iisClientCertificateMappingAuthentication enabled="false"> 
     </iisClientCertificateMappingAuthentication> 
     <windowsAuthentication enabled="false"> 
      <providers> 
       <add value="Negotiate" /> 
       <add value="NTLM" /> 
      </providers> 
     </windowsAuthentication> 
    </authentication> 

何が起こるするページが正常に提示されているが、私は私のクライアント証明書のために募集しておりません。

私は明らかにクライアントの証明書を持っていますので、なぜ他のウェブサイトからリクエストできるのか分かりません。私はIIS Expressの10

答えて

0

を使用しています

enter image description here

問題は、Visual Studio 2015は、溶液の子ディレクトリのいずれかにそのIIS ExpressのapplicationHost.configファイルを置きました。これは.vs/configディレクトリにあります。この問題に実行している他の誰にも

私の提案はにある:

(1)第一の構成は、あなたが(SslRequireCertをまたは交渉)仕事だと思うかについてであることを確認してください。その部分は、applicationhost.configファイルに何が含まれているべきかを知っていれば、あなたを抱かせることはありません。

(2)2番目に、証明書が正しく設定されていること。私はこれが私の場合の問題だとは思わないが、あなたがこの物件を読むことを妨げる可能性がある。 mmc(Windowsボタンを押した後にmmcを入力)、証明書に行く(または、持っていない場合はスナップインを追加する)、個人/証明書と中間証明書/証明書または信頼されたルート証明書を確認する必要があります/証明書には必要な証明書があります。

そして、私が言ったように:

は(3)あなたは右のapplicationHost.configを持っていることを確認してください。

関連する問題