Delen via


SYSLIB0041: Sommige Rfc2898DeriveBytes-constructors zijn verouderd

De volgende Rfc2898DeriveBytes constructors zijn verouderd, te beginnen in .NET 7. Als u ze in code gebruikt, wordt er een waarschuwing SYSLIB0041 gegenereerd tijdens het compileren.

Deze overbelastingen standaard het hash-algoritme of het aantal iteraties, en de standaardwaarden worden niet langer als veilig beschouwd. Dit zijn alle constructors die beschikbaar waren in .NET 4.7.1 en eerdere versies. In de toekomst moet u alleen de nieuwere constructors gebruiken.

Tijdelijke oplossing

Gebruik een andere overbelasting van de constructor waar u expliciet het iteratieaantal (de standaardwaarde is 1000) en de naam van het hash-algoritme (de standaardwaarde is HashAlgorithmName.SHA1).

Als u het standaardaantal iteraties of het standaardhash-algoritme gebruikt, kunt u overwegen om over te stappen op veiligere waarden, dat wil gezegd een groter aantal iteraties of een nieuwer hash-algoritme.

Een waarschuwing onderdrukken

Als u de verouderde API's moet gebruiken, kunt u de waarschuwing in code of in het projectbestand onderdrukken.

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de waarschuwing uit te schakelen en vervolgens opnieuw in te schakelen.

// Disable the warning.
#pragma warning disable SYSLIB0041

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0041

Als u alle SYSLIB0041 waarschuwingen in uw project wilt onderdrukken, voegt u een <NoWarn> eigenschap toe aan het projectbestand.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0041</NoWarn>
  </PropertyGroup>
</Project>

Zie Waarschuwingen onderdrukken voor meer informatie.