据我所知,必须有权限才能在机器密钥存储中写入。那么我如何将此权限分配给用户呢?我需要请求支持人员授予用户运行Moq所需的权限,但我不知 prop 体要请求什么。
- 更新 *:根据Tim下面的要求,我更新了一些可能有助于理解问题的信息,如下所示:
显然,Moq依赖于Castle来构建mock对象,Castle框架需要写入机器密钥存储。当我尝试运行测试时,测试框架返回错误“无法获得StrongNameKeyPair的公钥”。
当我去支持的家伙,他们暂时给了我管理权限,一切都像预期的那样运行。即使在他们删除管理权限,我能够执行我的测试。
我的结论是,我需要一些权限来写这个机器密钥存储。我需要知道的是,我到底需要在哪里有写权限,所以我可以要求支持特定的写权限,而不是管理员权限,对于其他开发环境,什么肯定会被拒绝。
提前感谢!
3条答案
按热度按时间1qczuiv01#
经过一番研究,我找到了执行Moq所需的写权限的确切目录(实际上,这是Castle的要求)。用户必须访问以下文件夹:
C:\Documents and Settings\AllUsers\ApplicationData\Microsoft\Crypto\RSA\MachineKeys
(假设“C”是您的系统文件夹)
有了这个权限,使用Moq运行mocking项目的用户将不需要在本地机器上的管理员权限。下面是一个参考:
MVC Testing using a mocking framework (Moq)
希望对你有帮助。
nuypyhwy2#
我从来不需要安装任何密钥来运行Moq,无论是在我的本地工作站上还是在我们的构建服务器上。我认为你可能需要在你的问题上多做一些工作。你得到了某种错误吗?也许如果你发布了消息,你可能会得到更好的回应。
vnzz0bqm3#
添加到MjLogan答案;在Windows 10中,位置是C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys在“MachineKeys”文件夹的属性中将用户权限设置为完全控制。