gpt4 book ai didi

c# - 在 ASP.NET 之外使用 MachineKey.Protect

转载 作者:太空狗 更新时间:2023-10-29 23:06:39 25 4
gpt4 key购买 nike

我需要在 ASP.NET(控制台应用程序、Powershell 等)之外加密一个 cookie,但由于这个 cookie 最终会被我的 MVC 应用程序读取,因此需要使用相同的 key 对其进行加密。

我可以使用 MachineKey class在 ASP.NET 之外,但是我无法指定加密类型或 key ,因为这些在应用程序的 web.config 中概述,在此上下文中不存在。由于没有配置,每次都会随机生成 key 。

我如何使用下面相同的解密 key 加密数据,以保证稍后我的 MVC 应用程序能够成功解密?

<machineKey 
validationKey="207FE3B8E01D0FF81871D7F3EFC082A14341A7820942D24D3BEF8954CAE53D860F46FBCDDA73F752CE1052D475D442CC8C14FC814739A757D52D152EF5EE179E"
decryptionKey="326C47E59EB1B38AEA84DBC9633BB770C318A740E477C82F3A8D9506F030D953"
validation="SHA1" decryption="AES"

/>

最佳答案

一些可能的想法。

  1. 只需将 App.config 与您的控制台应用程序一起使用并镜像机器来自主项目的 web.config 的 key 。
  2. 以编程方式获取机器 key 。为此,您需要机器 key 的路径(也许你可以将它存储在 DB,windows注册表,或某处?)。 MSDN has some great examples of this method .

捕获关键基本上是:

Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);
MachineKeySection configSection = (MachineKeySection)config.GetSection("system.web/machineKey");

那么只需要使用正确的方法来加密 cookie 即可。请记住,某些 ASP.NET 成员身份提供程序会将附加数据序列化到 cookie 中,因此这可能无法实现,具体取决于您使用的是哪一个。此外,如果您的应用程序使用 cookie 的 UserData 部分,那么这可能会破坏它。

关于c# - 在 ASP.NET 之外使用 MachineKey.Protect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31119730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com