2013-02-11 9 views
7

मुझे अभी पता चला है कि Win8 के पास उपयोगकर्ता खाते और परिवार सुरक्षित रूप से नामक नियंत्रण कक्ष पर एक अनुभाग है प्रमाण पत्र प्रबंधक। मैं वहां संग्रहीत क्रेडेंशियल्स तक पहुंचना चाहता हूं (पर पासवर्ड पुनर्प्राप्त करें लेकिन लॉगिन के लिए टोकन के रूप में उनका उपयोग करने के लिए)। तो, मूल रूप से, मैं पहले से स्थापित सॉफ्टवेयर पर एक पिग्गी-बैक सवारी प्राप्त करना चाहता हूं।Win7 और Win8 पर संग्रहीत क्रेडेंशियल (पासवर्डवॉल्ट?) तक कैसे पहुंचे?

this discussion में समाधान के सबसे नज़दीक का सुझाव दिया गया है और यह बंद नहीं है।

  1. मैं कहाँ Windows.Security.Credentials.PasswordVault के लिए विधानसभा मिल सकती है? मैं दो घंटों तक गुगल रहा हूं लेकिन मुझे केवल ऐप विकास पर जानकारी मिलती है जबकि मैं डेस्कटॉप को लक्षित करूँगा।

  2. क्या Win7 और Win8 दोनों के लिए पूर्व-संग्रहित क्रेडेंशियल्स तक पहुंच को हल करने का कोई तरीका है? मुझे थोड़ा डर है कि Win8 में वॉल्ट सुविधा को काफी हद तक पुनर्निर्मित किया गया है, जिससे दोनों प्लेटफार्मों को एक बार में लक्षित करना असंभव हो जाता है।

+0

'के लिए विधानसभा PasswordVault'' Windows.winmd' में रहता है। –

+0

जब मैं किसी असेंबली में संदर्भ जोड़ने का प्रयास करता हूं तो मेरे पास * विंडोज * के साथ कुछ भी नहीं है। क्या गलत हो सकता है ?! –

+0

_Reference Manager_ में, क्या आप _Windows_ नामक एक अनुभाग देखते हैं, बस _COM_ और _Browse_ के बीच? –

उत्तर

6

How to: Add or Remove References By Using the Reference Manager का कहना है:

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

<PropertyGroup> 
    <TargetPlatformVersion>8.0</TargetPlatformVersion> 
</PropertyGroup> 

इस टैब पर विंडोज बॉक्स को चेक करना सुनिश्चित करें। इसके बाद आपको WinRT तत्वों का उपयोग करने में सक्षम होना चाहिए।

+0

यह Win7 के लिए उड़ान भरने वाला नहीं है, है ना? –

+0

दुर्भाग्य से, नहीं। शायद, आपको रनटाइम पर अपवाद मिलेगा: 'System.PlatformNotSupportedException: ऑपरेशन इस प्लेटफ़ॉर्म पर समर्थित नहीं है। –

+0

win8 के लिए और पूर्ण विवरण कैसे देखें http://www.codeproject.com/Articles/457335/How करने वाली कॉल-WinRT-API- से-NET-desktop-क्षुधा – Cel

2

आप लिपटे Credential Management package का उपयोग कर सकते हैं। यह एक ओपन-सोर्स प्रोजेक्ट है। मैंने इसे विंडोज 7 में चेक किया और यह सही काम करता है।

अपने डेटा उपयोग बचाने के लिए कोड का पालन:

Credential saved = new Credential("username", "password", "MyApp", CredentialType.Generic); 
    saved.PersistanceType = PersistanceType.LocalComputer; 
    saved.Save(); 

और आपके डेटा का उपयोग लोड करने के लिए:

Credential credential = new Credential { Target = "MyApp", Type = CredentialType.Generic }; 
    credential.Load(); 
4

मैं एक ही समस्या का सामना करते आया और पता चला कोई सीधा जवाब है कि वहाँ कहीं भी।

यह है कि मैं क्या पाया है:

  1. आप परियोजना उतारना और जैसा कि ऊपर उल्लेख TargetPlatformVersion जोड़ने की जरूरत है।
  2. संदर्भ जोड़ें: C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral\Annotated\Windows.winmd
  3. इसके अलावा संदर्भ जोड़ें: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll
संबंधित मुद्दे