18

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

同一个 IDE 告诉我,我在使用DataProtectionScopeand时遇到了错误ProtectedData。那些应该在那个命名空间中。但是,当我点开包裹时,我看不到它们。

文章错了吗?如何访问这两个类?

4

7 回答 7

77

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

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

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

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

希望这可以帮助。

于 2013-08-16T21:07:17.327 回答
9

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

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

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

你的目标是什么框架?

于 2012-10-30T22:38:21.043 回答
2

除了System.Security.Cryptography.

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

之后,System.Security.Cryptography就被“使用”了。

于 2019-03-05T14:56:28.080 回答
1

正如@Dave Lucre 所问,您的应用程序的目标是什么框架?默认情况下,Visual Studio 创建所有新应用程序以使用客户端配置文件(我认为这很糟糕),如果您不专门将其更改回来,它会导致各种麻烦。看一看,然后看看我们从那里去哪里。

于 2012-11-02T14:24:44.877 回答
0

删除引用System.Security.Cryptography并重新添加。

它适用于我的情况。

于 2020-10-13T12:07:39.323 回答
0

对不起,我知道这是一篇很老的帖子,但我现在遇到了这个问题,我发现的唯一解决方法是:

  1. 按照乔治布赖恩的回答中提到的步骤
  2. 使用System.Security.Cryptography.DataProtectionScope scope = System.Security.Cryptography.DataProtectionScope.LocalMachine;代替DataProtectionScope scope = DataProtectionScope.LocalMachine;
于 2021-01-15T17:01:35.670 回答
-10

这可能是你脸上的一记耳光,因为你可能已经尝试过了(而你没有尝试过,你可能应该得到一个)。如果重新安装整个 IDE 会发生什么?我的意思是整个事情。删除框架,VS,删除文件,去偏执并清理垃圾桶,切换到不同的安装目录等。问题仍然存在吗?

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

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

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

于 2012-11-03T00:47:23.810 回答