Dot-Net-Core

.NET Standard 2.0 和 System.Security.Cryptography.ProtectedData.Protect

  • January 11, 2020

我正在查看System.Security.Cryptography.ProtectedData.Protect @ https://docs.microsoft.com/en-gb/dotnet/api/

因為我們希望將一個庫從 .NET Framework 4.7 移植到 .NET Standard 2.0 以供 .NET Core 2.0 使用。我進行了搜尋,它僅在完整的 .NET Framework 和 .NET Core 中可用。

我的問題是,為什麼它在 .NET Standard 2.0 中不可用?

我原以為如果它可以用於 .NET Framework 4.7 和 .NET Core 2.0 等,那麼它也將成為 .NET Standard 2.0 的一部分

此 API 在“.NET Standard 2.0”“中”不可用,但它可作為“平台擴展”“用於”.NET Standard 2.0,這意味著您必須添加一個 NuGet 包才能獲得對它的支持。

如果添加對System.Security.Cryptography.ProtectedDataNuGet 包的引用,則可以開發使用這些 API 的 .NET Standard 庫。

但是,此支持僅在 Windows 上執行時有效,因為這些 API 被描述為

提供對 Windows 數據保護 API 的訪問。

所以它不能在 Windows 以外的平台上執行。根據您的需要,這可能很好。

如果您希望跨平台實現類似的概念,我建議您研究ASP.NET Core 數據保護 API,它也可以在 ASP.NET Core 應用程序的上下文之外使用,因為它是由提供的 NuGet 包組成的加密邏輯和密鑰儲存解決方案(例如目錄、Windows 證書儲存、Azure KeyVault)。

引用自:https://stackoverflow.com/questions/48208262