c# - 在 ASP.NET 中加密 cookie

标签 c# asp.net encryption cryptography

我想在 ASP.NET 中加密 cookie。

我关注了the method in this article ,但它的缺点是在内部方法上使用反射。这导致它在代码审查中被标记——它不是面向 future 的,因为内部实现可能会改变。

是否有一种功能相同但不需要对内部方法使用加密的方法?

我正在使用 .NET Framework 3.5 SP1(假设我无法更改框架版本)

最佳答案

您不再需要自己滚动。

.Net 4.5 有 MachineKey.Protect()MachineKey.Unprotect()

System.Web.Security.MachineKey

.Net 4.0 有 MachineKey.Encode()MachineKey.Decode()。您应该将 MachineKeyProtection 设置为“全部”。不过这些现在已经过时了,如果你有 4.5,你应该使用更新的。

请注意,如果您尝试在控制台应用程序而不是 ASP.Net 中使用它们,它似乎会在每次重新启动应用程序时生成一个新 key 。我只是快速检查了一下,但在 ILSpy 中,如果缺少适当的 app.setting,它似乎会生成自己的默认值。

我没能找到非 ASP.Net 的等价物。

关于c# - 在 ASP.NET 中加密 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4360839/

相关文章:

c# - cshtml 元素中的 _layout 文件不会反射(reflect)在从它继承的文件中,除非在同一目录中

c# - 如何创建复选框列表?

.net - 您可以为SVN推荐一个好的基于.NET Web的存储库浏览器吗?

android - 在 android 和 iphone 上使用 salt 进行哈希处理

c# - 可访问性不一致 : field type 'System. Collections.Generic.Dictionary<> 的可访问性低于其他字段

c# - 具有 C#8 默认接口(interface)实现/特征的事件继承

c# - 410 状态显示 "The page you requested was removed"

javascript - ASP.NET ImageButton onclick javascript 未触发

python - 在 Mac 上找不到 openssl/aes.h' 文件

encryption - openssl s_client 和 s_server 密码不匹配