Visual Studio запускает Тесты с менее привилегированным процессом?

У меня есть приложение, которое, как предполагается, читает из Реестра и при выполнении консольного приложения, мой доступ к реестру работает отлично.

Однако, когда я перемещаю его в тест, это возвращается null:

var masterKey = Registry.LocalMachine.OpenSubKey("path_to_my_key");

Таким образом, мой вопрос:

Visual Studio запускает Тесты с менее привилегированным процессом?

Я протестировал для наблюдения, какого пользователя это дало мне: var x = WindowsIdentity.GetCurrent().Name; и это дает мне то же как в консольном приложении. Таким образом, я немного смущен здесь.

Я использую Среду тестирования MS, и машина является Windows 2003 64 Bit.

6
задан Filip Ekberg 7 May 2010 в 10:13
поделиться

2 ответа

Это не вопрос безопасности. Это тот факт, что вы работаете на 64-разрядной операционной системе. 64-разрядные приложения имеют другой вид HKLM\Software, чем 32-разрядные приложения. 64-разрядные приложения получают «нормальное» представление, 32-разрядные приложения перенаправляются в HKLM\Software\Wow6432Node. EXE определяет разрядность процесса, она будет отличаться при запуске кода mstest. 32-бит, наверное.

Вам нужно будет создать ключ, который вы пытаетесь прочитать в дереве Wow6432Node. Или сделать так, чтобы обычное приложение было таким же битовым, Проект + Свойства, вкладка Сборка,Целевая платформа = x86. Также изменяемый на лету с Corflags.exe.

1
ответ дан 18 December 2019 в 04:49
поделиться

Я бы сказал да. Почему вы ожидаете чего-то другого? Это должно быть так, чтобы соответствовать логотипу Windows. Это также хорошо с точки зрения безопасности. Visual Studio .NET - это логотип Windows соответствует требованиям, поэтому можно ожидать, что он будет работать как пользователь с ограничениями

http://blogs.msdn.com/vcblog/archive/2006/09/06/742187.aspx

-1
ответ дан 18 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: