我有一个C#解决方案,它使用System.Security将密码解密到TFS服务器。安全例程保存在解决方案中的单独项目中。解决方案中还有两个项目使用该模块来解密这些信息。键在一个项目中无效错误,但在同一解决方案中的不同项目中工作
它使用DPAPI和LocalMachineKey加密。从解决方案中部署的两个项目是Windows Service .exe和.dll。
一切工作正常,除了最近我不得不测试使用解密模块的项目之一(TFS工作项目事件处理程序)的新部署。我在我的机器上构建了项目,并将dll部署到测试TFS服务器。我立即开始得到这个错误:
System.Security.Cryptography.CryptographicException: Key not valid for use in specified state.
at System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData, Byte[] optionalEntropy, DataProtectionScope scope)
现在,驾驶我绝对疯狂的是,它使用完全相同的模块的其他项目(一个Windows服务)继续工作就好了。密码是一样的,配置文件没有改变,但一个应用程序工作,另一个...不。
任何人都可以指引我看看发生了什么吗?在测试服务器上构建项目似乎没有帮助,在测试机器上重新加密密码以确保它使用正确的密钥。我已经把头发撕了两天了 - 这是一个非常小的变化,但我不能部署它,直到我至少可以测试它,并且我不希望在问题机器上发生这种问题。
你好,很好奇,如果你发现你回答这个问题,因为我有一个类似的问题,因为你。 –