gpt4 book ai didi

c# - 通过应用设置设置 MachineKey

转载 作者:行者123 更新时间:2023-11-30 12:43:30 25 4
gpt4 key购买 nike

我们有一个 .NET 4.5.x oss application我们正在使用 git deploy 部署到 azure 网站。我们有一个构建服务器,它将工件提交到 git 存储库,然后我们将它用于 git 部署。我们使用 Azure 中的应用程序设置来控制一切。但是,我在寻找通过应用程序设置/环境变量设置机器 key 的方法时遇到了障碍。还有其他人遇到这个问题并解决了吗?

P.S.,在我们的应用程序中似乎唯一使用 machineKey 的是 SignalR...我想知道是否有一种安全可靠的方法来替换 IProtectData 而无需使用机器 key 生成 token 。

最佳答案

像你一样,我希望能够设置机器 key ,但不将它们提交到 web.config,这会进入源代码控制并成为安全风险,并且能够使用我们使用的相同的每环境配置系统应用程序设置。我确实找到了一个解决方案,尽管它有点难看,因为它使用反射来操纵 MachineKeySection 配置。

var getter = typeof(MachineKeySection).GetMethod("GetApplicationConfig", BindingFlags.Static | BindingFlags.NonPublic);
var config = (MachineKeySection)getter.Invoke(null, Array.Empty<object>());

var readOnlyField = typeof(ConfigurationElement).GetField("_bReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
readOnlyField.SetValue(config, false);

config.DecryptionKey = myKeys.EncryptionKey;
config.ValidationKey = myKeys.ValidationKey;

readOnlyField.SetValue(config, true);

我还希望能够(如果可能的话)提取和使用生产服务器上的当前机器 key ,这样就不必强行注销所有当前登录的用户。我最终做了一些非常类似于 this answer 的事情,它也使用了反射。

完整解决方案:https://gist.github.com/cmcnab/d2bbed02eb429098ed3656a0729ee40a

关于c# - 通过应用设置设置 MachineKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31395117/

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