重新協商連線並請求客戶端憑證的選項預設已被停用。 討論請參見 dotnet/aspnetcore#23181 議題。
推出的版本
ASP.NET 核心 5.0
舊行為
連線可重新協商以請求用戶端憑證。
新行為
用戶端憑證只能在初始連線握手時請求。 更多資訊請參閱 pull request dotnet/aspnetcore#23162。
變更的原因
重新談判導致多項效能與僵局問題。 HTTP/2 也不支援這功能。 關於 ASP.NET Core 3.1 引入此行為控制選項的更多背景,請參見 dotnet/aspnetcore#14806 議題。
建議的動作
需要客戶端憑證的應用程式應該用 netsh.exe 來設定 clientcertnegotiation 選項為 enabled。 欲了解更多資訊,請參閱 netsh http 指令。
如果你只想讓應用程式的部分啟用客戶端憑證,請參考「 可選客戶端憑證」的指引。
如果你需要舊的重新協商行為,請設 HttpSysOptions.ClientCertificateMethod 為舊值 ClientCertificateMethod.AllowRenegotiate。 基於上述及相關指引中所述的原因,不建議如此。