我想在 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/