【发布时间】:2011-03-04 18:51:49
【问题描述】:
我已经为此苦恼了几个星期,但找不到可行的解决方案。这是我的场景:
我有一个从外部数据库导入用户数据的 DTSX 包。然后它在本地数据库中创建用户帐户和配置文件。还可以通过自定义 ASP.NET 成员资格提供程序创建用户。提供者必须能够验证这两种类型的用户。
在开发过程中这一切都很好,因为密码以明文形式存储。但是,现在我们已准备好发布,必须将提供程序的密码格式设置为加密,因此通过 DTSX 创建的用户必须使用加密密码创建。 (我希望密码被散列,但客户的要求是密码是可恢复的)。真正的问题似乎是在 DTSX 中创建一个可由 ASP.NET Membership Provider 解密的加密密码。
我最初的解决方案是让 DTSX 调用一个 CLR 存储过程,该过程可以访问与提供程序相同的加密逻辑。我让它工作了,但我们的客户不会启用 CLR 集成。所以这就是窗外。现在我正在研究替代方案。一种替代方法是简单地使用 T-SQL 的内置加密方法。但是如何共享用于加密/解密的密钥?
我的问题是,是否可以在 T-SQL 中生成密码,比如使用 EncryptByKey,我的提供商也可以解密该密码?这意味着 SQL 中的键必须与我的 machineKey 配置中的键匹配。我不知道这是否可能。
非常感谢任何见解/帮助。
【问题讨论】:
-
从未找到解决问题的方法。做了一些完全不同的事情。
标签: sql-server-2005 encryption asp.net-membership