当前位置:首页 > 操作系统 > MacOs

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

我需要加密ASP.NET之外的cookie(Console App,Powershell等),但由于这个cookie最终将被我的MVC应用程序读取,因此需要使用相同的密钥加密.

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

如何使用下面相同的解密密钥加密数据,以便保证以后由我的MVC应用程序成功解密?

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

/>
</code>

解决方法:

一些可能的想法.

>只需在控制台应用程序中使用App.config并镜像计算机即可
来自主项目的web.config的键.
>以编程方式抓取机器密钥.要做到这一点,你需要
机器密钥的路径(也许你可以将它存储在DB,windows中
注册表,或某处?). MSDN has some great examples of this method.

抓住钥匙基本上是:

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

然后,只需使用正确的方法来加密cookie.请记住,某些ASP.NET成员资格提供程序会将其他数据序列化到cookie中,因此根据您使用的数据,这可能无法实现.此外,如果您的应用使用Cookie的UserData部分,那么这可能会破坏它.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐