Aracılığıyla paylaş


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.ClientCertificateHttpContext.Connection.GetClientCertificateAsynctarafı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.GetClientCertificateAsynctetiklenmesini 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();
}

Gecikmeli istemci sertifikası anlaşması kullanan uygulamalar yeniden anlaşma tetiklemesi için çağırmalıdır GetClientCertificateAsync(CancellationToken) .

Etkilenen API’ler

Ayrıca bkz.