2011-05-23 11 views
8

मैं यह सुनिश्चित करने के लिए एक निश्चित-शॉट विधि चाहता हूं कि एप्लिकेशन यूएसी बॉक्स के माध्यम से चलाया गया हो और उसके पास पूर्ण प्रशासनिक अधिकार हों। इससे पहले, मैंने परीक्षण के लिए सी: \ विंडोज \ में एक फ़ोल्डर बनाने का विचार किया लेकिन अन्य कंप्यूटरों पर इसे चलाने में विफलता साबित हुई!प्रशासनिक रनिंग अधिकारों के लिए परीक्षण आवेदन VB.NET

यूएसी बॉक्स कुछ भी करने के लिए कंप्यूटर के सभी प्रशासनिक अधिकार प्रदान करता है (फ़ोल्डर्स बनाने और उन स्थानों पर फाइलें बनाने के लिए जहां अधिकारों की आवश्यकता होती है) और यह भी सुनिश्चित करता है कि किसी भी बच्चे के कार्यक्रम को बुलाया या बनाया गया है, माता पिता।

क्या यह जांचने के लिए एक निश्चित शॉट तरीका है कि क्या मेरा आवेदन सभी प्रशासनिक अधिकार प्रदान किए गए हैं जिन्हें मैं एप्लिकेशन चलाते समय उपयोगकर्ता द्वारा अधिकतम प्राप्त कर सकता हूं या नहीं? यदि हां, तो मुझे कोड-काम का टुकड़ा होना अच्छा लगेगा!

अग्रिम धन्यवाद

उत्तर

18

सी #:

using System.Security.Principal; 

... 

var identity = WindowsIdentity.GetCurrent(); 
var principal = new WindowsPrincipal(identity); 
bool isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator); 

VB.Net:

Imports System.Security.Principal 

... 

Dim identity = WindowsIdentity.GetCurrent() 
Dim principal = new WindowsPrincipal(identity) 
Dim isElevated as Boolean = principal.IsInRole(WindowsBuiltInRole.Administrator) 
+0

वाह! एक दम बढ़िया। मैं इसे जवाब के रूप में चिह्नित करूंगा! : डी –

+3

वीबी.Net में इसके लिए एक शॉर्टकट भी है: 'यदि My.User.IsInRole (ApplicationServices.BuiltInRole.Administrator) तो ... –

+1

सी ++ इस कोड के बराबर है: बूल आर = (gcnew विंडोज प्रिंसिपल (WindowsIdentity :: GetCurrent())) -> IsInRole (WindowsBuiltInRole :: व्यवस्थापक); – RiA

संबंधित मुद्दे