【问题标题】:Adjust WCF IIS Service parameters without restart service or IIS调整 WCF IIS 服务参数,无需重启服务或 IIS
【发布时间】:2019-03-15 13:28:37
【问题描述】:

我目前正在制作一个托管在 IIS 上的 WCF 服务。但是,我的一些参数在服务中被硬编码为字符串,我希望能够调整这些参数而无需重新启动服务或 IIS。

我正在考虑从文件中读取它们,但最好不要让除我之外的任何人调整参数。 然后我考虑用参数制作一个单独的库,并将其作为依赖项添加到主项目中。每当我必须更改参数时,我都会在 IIS 上的项目的 bin 文件夹中切换库,但我不知道这是否可行。

您可以将我想要完成的任务想象成一个许可模块。假设我的文件/库中有一个许可证代码和一个日期,并且每 3 个月(否则该服务将无法工作)我必须更换它(如果客户续订)并且应该只有我可以做到。我意识到这可能不是您将如何进行许可的方式,这只是一个示例。

彼得

【问题讨论】:

  • 为什么不在 web.config 中添加这些设置而不是加密该部分?
  • 嗨 Cerveser。您是否有指向解释如何执行此操作的文章的链接?这听起来正是我所需要的。
  • 感谢 Cerveser,我会按照下面 alexrait 的建议对此以及 DPAPI 进行研究。

标签: wcf iis configuration-files


【解决方案1】:

您可能知道,如果它是一个 .NET 应用程序,那么反编译和修补它是非常容易的。

您可以像这样使用 DPAPI 进行加密: 1. 创建一个 winform/console 应用程序,它将使用“LocalMachine”上下文或该服务器上的专用用户进行加密。 2. 使用该应用程序加密一个秘密字符串。 3. Web 应用启动时使用“LocalMachine”解密或使用专用用户运行应用程序池。

包括对 System.Security 的引用,然后执行以下操作即可完成。

DPAPI password encryption in C# and saving into database.Then Decrypting it using a key

【讨论】:

  • 嗨,alexrait,我会研究 DPAPI,谢谢。我无权修改实际的应用程序池(其中只有我自己的应用程序),但这可能没有必要?!感谢您的意见。
  • 无需接触应用程序池。您可以使用 LocalMachine 进行加密。查看 Protect 和 Unprotect 函数的参数。
猜你喜欢
  • 2022-12-13
  • 2020-03-20
  • 1970-01-01
  • 2013-11-24
  • 1970-01-01
  • 2013-10-29
  • 2011-10-04
  • 1970-01-01
  • 2010-12-16
相关资源
最近更新 更多