Line 78: public virtual byte[] Unprotect()
Line 79: {
Line 80: return ProtectedData.Unprotect(protectedKey, null, protectionScope);
Line 81: }
起初怀疑是应用程序块的一个BUG,但经过它与执行Web App的系统用户有关。相同的代码用Dev Server运行不会出现任何的问题,但一放在IIS中马上就出错。Dev Server默认是用Administrator用户运行的,而且用普通的本地应用程序和单元测试程序都不会出错,唯有在IIS运行的Web App会出错,也尝试过把应用程序池的用户改成本地系统和本地服务都不行。DotNet加密类进行数据加密前进行什么样的操作需要与当前用户有关?而使用 密钥与当前用户息息相关的DPAPI加密,却不会出现任何问题?一个下午了,就为这一个问题我花了一整个下午的时间,还没有解决,在网上没有找到更多相关的资料,有,也都是擦边而过。晕死。Line 79: {
Line 80: return ProtectedData.Unprotect(protectedKey, null, protectionScope);
Line 81: }