2013-02-11 2 views
7

Я только что обнаружил, что у Win8 есть раздел на панели управления с именем Учетные записи пользователей и семейные сейфы с Диспетчер учетных данных. Я хотел бы получить доступ к учетным данным, хранящимся там (но не к получить пароли, а использовать их в качестве токенов для входа в систему). Поэтому, в основном, я хотел бы получить поросенковую езду на уже установленном программном обеспечении.Как получить доступ к сохраненным учетным данным (PasswordVault?) На Win7 и Win8?

Ближайшее к решению было предложено в this discussion, и это не , что закрыть.

  1. Где я могу найти узел для Windows.Security.Credentials.PasswordVault? Я работаю в Интернете в течение двух часов, но я получаю информацию о разработке приложений, пока я буду ориентироваться на рабочем столе.

  2. Есть ли способ разрешить доступ к предварительно сохраненным учетным данным как для Win7, так и для Win8? Я немного опасаюсь, что хранилище было реконструировано в Win8, что делает невозможным одновременное нацеливание обеих платформ.

+0

Узел для 'PasswordVault' находится в' Windows.winmd'. –

+0

У меня нет ничего, смотрящего на * Windows *, когда я пытаюсь добавить ссылки на сборку. Что может быть неправильно ?! –

+0

В _Reference Manager_ вы видите раздел с именем _Windows_, только между _COM_ и _Browse_? –

ответ

6

How to: Add or Remove References By Using the Reference Manager говорит:

В настольных проектов вкладка Ядро не появляется по умолчанию. Вы можете добавить среды выполнения Windows, открыв контекстное меню для узла проекта, выбирая Выгрузка проекта, добавив следующий фрагмент кода, и повторном открытии проекта (на узле проекта выберите Reload Project) , Когда вы вызываете диалоговое окно Reference Manager, появляется вкладка Core .

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

Обязательно проверьте окно Windows на этой вкладке. Затем вы должны использовать , чтобы использовать элементы WinRT.

+0

Это не будет летать на Win7, не так ли? –

+0

К сожалению, нет. Вероятно, вы получите исключение во время выполнения: 'System.PlatformNotSupportedException: операция не поддерживается на этой платформе.' –

+0

для win8 и полные подробные инструкции см. По адресу http://www.codeproject.com/Articles/457335/How -в-колл-WinRT-интерфейсы API-из-NET-приложений для настольных компьютеров – Cel

2

Вы можете использовать обернутый Credential Management package. Это проект с открытым исходным кодом. Я проверил его в Windows 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
Смежные вопросы