ClientCertificate özelliği artık HttpSys için yeniden anlaşma tetiklemez
HttpContext.Connection.ClientCertificate
özelliği artık HttpSys için TLS yeniden anlaşmalarını tetiklemez.
Sürüm kullanıma sunulmuştur
ASP.NET Core 6.0
Eski davranış
Hem hem de HttpContext.Connection.ClientCertificate
HttpContext.Connection.GetClientCertificateAsync
tarafından tetiklenecek yeniden anlaşma izni verilen ayarıHttpSysOptions.ClientCertificateMethod = ClientCertificateMethod.AllowRenegotiation
.
Yeni davranış
Ayar HttpSysOptions.ClientCertificateMethod = ClientCertificateMethod.AllowRenegotiation
, yeniden anlaşma işleminin yalnızca tarafından HttpContext.Connection.GetClientCertificateAsync
tetiklenmesini sağlar. HttpContext.Connection.ClientCertificate
varsa geçerli sertifikayı döndürür, ancak sertifikayı istemek için istemciyle yeniden anlaşma yapmaz.
Değişiklik nedeni
için Kestrelaynı özellikleri uygularken, uygulamaların yeniden anlaşma tetiklemeden önce istemci sertifikasının durumunu denetleyebilmesi gerektiği netleşti. İstek gövdesinin yeniden anlaşmayla çakışması gibi sorunlar için, durumun denetlenmesi aşağıdaki kullanım düzeninin sorunla başa çıkmasını sağlar:
if (connection.ClientCertificate == null)
{
await BufferRequestBodyAsync();
await connection.GetClientCertificateAsync();
}
Önerilen eylem
Gecikmeli istemci sertifikası anlaşması kullanan uygulamalar yeniden anlaşma tetiklemesi için çağırmalıdır GetClientCertificateAsync(CancellationToken) .
Etkilenen API’ler
- Microsoft.AspNetCore.Server.HttpSys.HttpSysOptions.ClientCertificateMethod
- Microsoft.AspNetCore.Http.ConnectionInfo.ClientCertificate
- Microsoft.AspNetCore.Http.ConnectionInfo.GetClientCertificateAsync(CancellationToken)
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin