2009-11-23 37 views
5

Vì Vista & windows 7 xuất hiện một số ứng dụng .NET của tôi đã bắt đầu ném các ngoại lệ bảo mật.Chạy ứng dụng .NET với tư cách là quản trị viên

Tôi đã nhận thấy rằng một số ứng dụng (ví dụ: bảng điều khiển chống vi-rút của tôi) có một lá chắn nhỏ và khi tôi chạy các ứng dụng này, các đặc quyền quản trị viên sẽ tự động được yêu cầu từ cửa sổ.

Tôi biết rằng với tư cách là người dùng, tôi có thể đặt ứng dụng chạy với tư cách quản trị viên nhưng điều đó không đủ tốt vì nếu ứng dụng sẽ chạy mà không có đặc quyền, nó sẽ gặp sự cố trên máy người dùng của tôi.

Có cách nào để báo cho cửa sổ (theo lập trình) tôi muốn ứng dụng chạy với quyền quản trị không?

Trả lời

7

Bạn cần đánh dấu ứng dụng của mình là yêu cầu đặc quyền quản trị trong tệp kê khai ứng dụng. Here's an article from MSDN Magazine giải thích quy trình.

16

Tạo một biểu hiện ứng dụng, thiết lập các requestedExecutionLevel để requireAdminstrator:

Ví dụ (tạo ra bởi VS khi bạn thêm ứng dụng Manifest):

<?xml version="1.0" encoding="utf-8"?> 
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
     <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> 
     <!-- UAC Manifest Options 
      If you want to change the Windows User Account Control level replace the 
      requestedExecutionLevel node with one of the following. 

     <requestedExecutionLevel level="asInvoker" uiAccess="false" /> 
     <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
     <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> 

      If you want to utilize File and Registry Virtualization for backward 
      compatibility then delete the requestedExecutionLevel node. 
     --> 
     <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
</asmv1:assembly> 

Nếu bạn thêm video này vào dự án ứng dụng Visual Studio, nó sẽ được nhúng vào lắp ráp của bạn khi bạn biên dịch.

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