2010-05-07 29 views
6

Tôi có một ứng dụng được cho là để đọc từ Registry và khi thực hiện một ứng dụng giao diện điều khiển truy cập đăng ký của tôi hoạt động hoàn hảo.Visual Studio có chạy thử nghiệm với quy trình ít đặc quyền hơn không?

Tuy nhiên khi tôi di chuyển nó qua một bài kiểm tra này trả null:

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

Vì vậy, câu hỏi của tôi là:

thử nghiệm

Liệu Visual Studio chạy với một quá trình bị thiệt thòi hơn?

Tôi đã kiểm tra để xem người dùng đã cho tôi điều gì: var x = WindowsIdentity.GetCurrent().Name; và nó mang lại cho tôi giống như trong ứng dụng bảng điều khiển. Vì vậy, tôi hơi bối rối ở đây.

Tôi đang sử dụng MS Test Framework và máy là Windows 2003 64 Bit.

Trả lời

1

Đây không phải là vấn đề bảo mật. Thực tế là bạn đang chạy trên hệ điều hành 64 bit. Ứng dụng 64 bit có chế độ xem phần mềm HKLM \ Software khác với ứng dụng 32 bit. Các ứng dụng 64 bit có chế độ xem "bình thường", các ứng dụng 32 bit được chuyển hướng đến HKLM \ Software \ Wow6432Node. EXE xác định bit-ness của quá trình, nó sẽ khác khi mstest chạy mã. 32-bit, có thể.

Bạn cần phải tạo khóa bạn đang cố gắng đọc trong cây Wow6432Node. Hoặc làm cho ứng dụng thông thường có cùng bit-ness, Project + Properties, tab Build, Platform Target = x86. Cũng thay đổi on-the-fly với Corflags.exe.

+0

Tại sao nó hoạt động khi tôi xây dựng một ứng dụng giao diện điều khiển cho "Bất kỳ CPU" sau đó? –

+1

@Filip, Bất kỳ CPU * nào * là sự cố, chạy mã ở chế độ 64 bit. Thử nghiệm của bạn chạy ở chế độ 32 bit. Có lẽ một phiên bản của máy chủ mstest có thể chạy mã trong chế độ 64-bit, không biết đủ về nó. –

+1

Kiểm tra bài đăng trên blog này: http://blogs.msdn.com/danielvl/archive/2009/03/28/run-mstest-exe-as-native-64-bit-process.aspx –

-1

Tôi sẽ nói có. Tại sao bạn mong đợi bất cứ điều gì khác nhau? Nó sẽ phải theo cách này để tuân thủ Windows Logo. Nó cũng tốt từ quan điểm bảo mật. Visual Studio .NET là Windows Logo phù hợp, do đó bạn sẽ hy vọng rằng nó chạy như một người dùng bị hạn chế

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

Các vấn đề liên quan