在System.Security.Cryptography中找不到`DataProtectionScope`和`ProtectedData`类

17 c# cryptography visual-studio-2010

我已按照本文所述引用该文件System.Security.dll,但根据我的IDE,该行可以安全删除,因为它没有被使用.using System.Security.Cryptography;

相同的IDE告诉我,我DataProtectionScopeProtectedData.有错误.那些应该在那个命名空间中.然而,当我穿过包裹时,我看不到它们在那里.

这篇文章错了吗?我怎样才能访问这两个类?

小智 67

正如@Coral Doe在@Dave Lucre的评论中提到的那样:

"有一个类似的问题,这很有效.使用System.Security.Cryptography;在我为特定框架引用System.Security.dll之前,没有[显示]我[ProtectedData]和ProtectedMemory."

这为我解决了这个问题.具体来说,我执行了以下步骤:

  1. 在Visual Studio中打开项目.
  2. 在解决方案资源管理器中右键单击项目名称,然后选择"属性".
  3. 单击左侧的"引用"选项卡.
  4. 单击"添加"按钮.
  5. 单击.NET选项卡.
  6. 选择System.Security并单击"确定"以添加引用.

希望这可以帮助.

  • 这应该是答案.我一直忘记这样做. (5认同)
  • 是的,这就是答案.非常感谢. (2认同)
  • 谢谢.希望这被标记为答案. (2认同)

Dav*_*cre 8

我在这里引用了System.Security.dll: C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Security.dll

添加 using System.Security.Cryptography;,我可以看到DataProtectionScopeProtectedData.

我的目标是.net 4.0完整框架(不是客户端配置文件).

您定位的框架是什么?

  • 有类似的问题,这有效.`使用System.Security.Cryptography;`我没有向我展示`ProtectdData`和`ProtectedMemory`,直到我为特定框架引用了`System.Security.dll`. (4认同)

Rob*_*ely 6

除了System.Security.Cryptography.

它是https://www.nuget.org/packages/System.Security.Cryptography.ProtectedData/

之后,System.Security.Cryptography就变成了“被利用”。


Kon*_*ten -9

这可能是打在你脸上的一记耳光,因为你可能已经尝试过(而且你还没有,你可能应该得到一个)。如果重新安装整个 IDE 会发生什么?我的意思是真正的整件事。删除framwork、VS、删除文件、清理垃圾箱、切换到不同的安装目录等等,问题还存在吗?

我知道它不能解释为什么会发生,但在这个阶段我猜你最感兴趣的是如何解决这个问题。

如果您可以使用备用计算机 - 为什么不在计算机上安装 VS 并查看是否可以重现该错误。如果没有,那么您的主计算机就会出现问题,您可能永远不会知道发生了什么。

我在这里强调,这只是一个一般性建议的列表,当任何理智或逻辑似乎都行不通时,每个程序员都应该依赖这些建议。是的,我确实讨厌电脑。我喜欢编程,但我讨厌计算机。他们就像拿着键盘的邪恶小人……