2013-02-11 17 views
7

Tôi vừa phát hiện ra rằng Win8 có một phần trên Bảng điều khiển được gọi là Tài khoản người dùng và Gia đình một cách an toàn với Trình quản lý thông tin xác thực. Tôi muốn truy cập thông tin đăng nhập được lưu trữ trong đó (không phải truy xuất mật khẩu nhưng để sử dụng chúng làm mã thông báo cho thông tin đăng nhập). Vì vậy, về cơ bản, tôi muốn có được một chuyến đi heo con trên phần mềm đã được cài đặt.Làm cách nào để truy cập thông tin đăng nhập được lưu trữ (PasswordVault?) Trên Win7 và Win8?

Gần nhất với giải pháp đã được đề xuất trong this discussion và không phải là rằng đóng.

  1. Tôi có thể tìm các lắp ráp cho Windows.Security.Credentials.PasswordVault? Tôi đã googling trong hai giờ nhưng tôi chỉ nhận được thông tin về phát triển ứng dụng trong khi tôi sẽ nhắm mục tiêu máy tính để bàn.

  2. Có cách nào để giải quyết quyền truy cập vào thông tin xác thực được lưu trước cho cả Win7 và Win8 không? Tôi lo sợ một chút rằng cơ sở vault đã được sửa chữa mạnh trong Win8, làm cho nó không thể nhắm mục tiêu cả hai nền tảng cùng một lúc.

+0

Việc lắp ráp cho 'PasswordVault' cư trú trong' Windows.winmd'. –

+0

Tôi không có gì nhìn chằm chằm với * Windows * khi tôi cố gắng thêm tham chiếu đến một assembly. Điều gì có thể sai?! –

+0

Trong Trình quản lý _Reference_, bạn có thấy một phần được gọi là _Windows_, chỉ giữa _COM_ và _Browse_ không? –

Trả lời

6

How to: Add or Remove References By Using the Reference Manager nói:

Trong các dự án máy tính để bàn tab Core không xuất hiện theo mặc định. Bạn có thể thêm Windows Runtime bằng cách mở menu phím tắt cho nút dự án , chọn Unload Dự án, thêm đoạn mã sau, và tái mở dự án (trên nút dự án chọn Nạp lại Dự án) . Khi bạn gọi đến hộp thoại Tham chiếu Trình quản lý Tham chiếu, tab Core sẽ xuất hiện.

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

Đảm bảo chọn hộp Windows trên tab này. Sau đó, bạn có thể là có thể sử dụng các phần tử WinRT.

+0

Điều này sẽ không bay cho Win7, phải không? –

+0

Thật không may, không. Có thể, bạn sẽ nhận được ngoại lệ khi chạy: 'System.PlatformNotSupportedException: Thao tác không được hỗ trợ trên nền tảng này.' –

+0

để biết chi tiết về cách thực hiện win8 và đầy đủ xem http://www.codeproject.com/Articles/457335/How -to-call-WinRT-APIs-từ-NET-máy tính để bàn-ứng dụng – Cel

2

Bạn có thể sử dụng gói Credential Management package. Đó là một dự án mã nguồn mở. Tôi đã kiểm tra nó trong Windows 7 và nó hoạt động đúng.

Để tiết kiệm sử dụng dữ liệu của bạn sau mã:

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

Và để tải dữ liệu của bạn sử dụng:

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

tôi đi qua cùng một vấn đề và phát hiện ra rằng không có câu trả lời đơn giản bất cứ đâu.

Đây là những gì tôi thấy:

  1. Bạn cần phải dỡ bỏ dự án và thêm TargetPlatformVersion như đã đề cập ở trên.
  2. Thêm tài liệu tham khảo: C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral\Annotated\Windows.winmd
  3. Ngoài ra thêm các tài liệu tham khảo: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll
Các vấn đề liên quan