2009-11-23 19 views
5

Vista & Windows 7'den bu yana, bazı .NET uygulamalarım güvenlik özel durumları oluşturmaya başladı..NET uygulamasını yönetici olarak çalıştır

Bazı uygulamaların (yani, antivirüsüm, kontrol panelinin) küçük bir koruma kalkanının olduğunu ve bu uygulamaları çalıştırdığımda pencerelerden otomatik olarak yönetici ayrıcalıkları istediğimi fark ettim.

Kullanıcı olarak uygulamayı yönetici olarak çalışacak şekilde ayarlayabildiğimi biliyorum, ancak bu uygulama yeterince iyi değil çünkü uygulama ayrıcalık olmadan çalışacaksa, kullanıcı makinelerimde çökecektir.

Pencereleri anlatmanın bir yolu var mı (program aracılığıyla) Uygulamanın yönetimsel ayrıcalıklarla çalışmasını istiyorum?

cevap

16

, Bir uygulama bildirimi oluşturma requireAdminstrator için RequestedExecutionLevel ayarlayın:

Örnek (Uygulama Manifest eklerken VS tarafından oluşturulan):

<?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> 

bir Visual Studio uygulama projesine bu eklerseniz, derlediğinizde derlemenize gömülecektir.

İlgili konular