2011-08-07 18 views
16

मेरे वर्तमान सी # कोड में मैं विंडोज़ उपयोगकर्ता सत्र प्रोग्रामेटिक रूप से लॉक करने में सक्षम हूं (विंडोज + एल के समान)।विंडोज प्रोग्रामेटिक रूप से अनलॉक करें

चूंकि ऐप अभी भी चल रहा है, क्या उस सी # प्रोग्राम से सत्र अनलॉक करने का कोई तरीका है। उपयोगकर्ता प्रमाण पत्र ज्ञात हैं। ऐप विंडोज 7 पर चल रहा है।

+8

यदि आपके पास प्रमाण-पत्र (उपयोगकर्ता नाम और पासवर्ड) हैं तो आपको एक और समस्या है। –

+1

http://stackoverflow.com/questions/5764174/unlock-local-computer-using-net –

+3

का डुप्लिकेट वर्कस्टेशन को लॉक नहीं करना मेरी सिफारिश है। मेरा मतलब है, अगर आप इसे अनलॉक करना चाहते हैं तो बस इसे लॉक करने से बचें। –

उत्तर

-8

बेशक आप इसे अनलॉक नहीं कर सकते हैं। किसी सत्र को अनलॉक करने के लिए उपयोगकर्ता भौतिक रूप से वहां अपने खाता प्रमाण-पत्र दर्ज करने की आवश्यकता होती है। ऐसा करने के लिए सॉफ़्टवेयर को अनुमति देना, यहां तक ​​कि सहेजे गए क्रेडेंशियल्स के साथ, कई अन्य स्थितियों के लिए एक सुरक्षा समस्या होगी जहां वर्कस्टेशन लॉकिंग का उपयोग किया जाता है।

+0

यही कारण है कि आपको ctrl + alt + del –

+7

-1 का उपयोग करने की आवश्यकता क्यों है, यह एक सुरक्षा समस्या है लेकिन लॉगमेइन द्वारा सिद्ध, संभव – Will03uk

+0

यह सच नहीं है। आप एक कस्टम प्रमाण पत्र प्रदाता का उपयोग कर सकते हैं। – Bemipefe

3

यहां कुछ हैकर करने के लिए हैकरी है: http://www.codeproject.com/Articles/16197/Remotely-Unlock-a-Windows-Workstation हालांकि इसे स्वयं परीक्षण नहीं किया गया था।

.NET भाग के लिए नहीं, लेकिन आप अपना खुद का कस्टम लॉगऑन यूआई भी बना सकते हैं और वहां कुछ तंत्र इंजेक्ट कर सकते हैं। हालांकि यह आसानी से सुरक्षा समस्या बन सकता है।

+1

@Alagaros लिंक –

-9

नहीं, डिज़ाइन द्वारा ऐसा करने का कोई तरीका नहीं है। आपका परिदृश्य क्या है और आपको वर्कस्टेशन को लॉक/अनलॉक करने की आवश्यकता क्यों है?

+2

अपडेट किया गया यह Vista और विंडोज 7 पर अपमानजनक ढंग से किया जा सकता है। लॉगमेइन और चेहरा पहचान लॉग इन देखें; मुझे नहीं पता कि यह कैसे करें – Will03uk

+1

@ Will03uk: वे एक कस्टम जीआईएनए डीएलएल (जो लॉगिन प्रमाणीकरण प्रक्रिया को नियंत्रित करता है) लिखकर किया जाता है। –

+1

मैंने इसे अभी देखा है और चूंकि विस्टा जीआईएनए डीएलएल को क्रेडेंशियल प्रोवाइडर के साथ बदल दिया गया है जो अधिक लचीलापन और अधिक प्रदाता को एक समय – Will03uk

-2
var path = new ManagementPath(); 
    path.NamespacePath = "\\ROOT\\CIMV2\\Security\\MicrosoftVolumeEncryption"; path.ClassName = "Win32_EncryptableVolume"; 

    var scope = new ManagementScope(path, new ConnectionOptions() { Impersonation = ImpersonationLevel.Impersonate }); 

    var management = new ManagementClass(scope, path, new ObjectGetOptions()); 

    foreach (ManagementObject vol in management.GetInstances()) 
    { 

     Console.WriteLine("----" + vol["DriveLetter"]); 
     switch ((uint)vol["ProtectionStatus"]) 
     { 
      case 0: 
       Console.WriteLine("not protected by bitlocker"); 
       break; 
      case 1: 
       Console.WriteLine("unlocked"); 
       break; 
      case 2: 
       Console.WriteLine("locked"); 
       break; 
     } 

     if ((uint)vol["ProtectionStatus"] == 2) 
     { 
      Console.WriteLine("unlock this driver ..."); 

      vol.InvokeMethod("UnlockWithPassphrase", new object[] { "here your pwd" }); 

      Console.WriteLine("unlock done."); 
     } 
    } 

नोट: यह केवल तभी काम करता है जब आप विजुअल स्टूडियो को व्यवस्थापक के रूप में चलाते हैं।

+0

फ़ोरैच लाइन पर रनटाइम पर अमान्य नेमस्पेस प्राप्त कर रहा है भले ही मैं सिस्टम का उपयोग कर रहा हूं। प्रबंधन। – DontFretBrett

+1

सवाल यह है कि विंडोज़ अनलॉक करने के बारे में नहीं है बिटकॉकर लॉक ड्राइव को अनलॉक करने के बारे में –

4

आपको अपने लिए लॉग इन करने के लिए एक कस्टम विंडोज क्रेडेंशियल प्रदाता की आवश्यकता होगी। इसके अलावा, आप लॉग इन करने के लिए उपयोगकर्ता की साख कहीं बचाने के लिए की आवश्यकता होगी। कुछ नमूने वहाँ परियोजनाओं के एक गुच्छा आप Samples\security\credentialproviders के तहत आरंभ करने के लिए है विंडोज एसडीके 7 https://www.microsoft.com/en-us/download/details.aspx?id=8279

में हैं।

स्क्रीन को अनलॉक करने के लिए:

  • CSampleCredential::SetSelected
  • में CSampleCredential::Initialize
  • सेट सच करने के लिए स्वचालित लॉगइन में नाम/पासवर्ड सेट WM_TOGGLE_CONNECTED_STATUS संदेश के लिए खोज हार्डवेयर प्रदाता नमूना कैसे लॉगिन को गति प्रदान करने को देखने के लिए
  • अनलॉक ट्रिगर करने के लिए अपने ऐप के साथ संवाद करने के लिए कुछ तरीका बनाएं (उदाहरण के लिए स्थानीय टीसीपी सर्वर)

यह गधे में दर्द है, लेकिन यह काम करता है।

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