2016-04-10 21 views
10

Đối với ứng dụng UWP, cơ chế giới thiệu để lưu trữ bí mật cần được triển khai bằng ứng dụng như khóa API và mã thông báo bí mật là gì? Đối với mã thông báo xác thực do người dùng tạo PasswordVault có ý nghĩa nhưng tôi không thể thấy cách thiết lập các mã thông báo đó như một phần của triển khai ứng dụng. Cho đến bây giờ tôi đã nhúng chúng vào ứng dụng không có vẻ "đúng" hoặc an toàn.Cách được giới thiệu để lưu trữ khóa API và bí mật trong ứng dụng UWP là gì?

+0

Đối với cửa sổ 8.1 Tôi sử dụng để tạo ra .dll mà sẽ lưu trữ các thông tin cần thiết và thêm chúng như tài nguyên. Bây giờ lập kế hoạch sử dụng mật mã và lưu trữ dữ liệu trong tệp có thể được giải mã bên trong ứng dụng và truy cập để ngay cả khi ai đó truy cập tệp từ bộ nhớ cục bộ, họ sẽ không thể truy cập dữ liệu. Mặc dù bạn có tùy chọn 'Keycredential' và' Identity' nhưng chúng được sử dụng khi người dùng đăng nhập. – Jerin

+0

@ Jerin Tôi đã xem xét điều đó nhưng sau đó có vẻ như bạn chỉ cần di chuyển vấn đề. Làm cách nào để bảo vệ khóa giải mã của bạn? – dkackman

+0

Khoá giải mã sẽ được thêm dưới dạng hằng số trong mã của bạn hoặc dưới dạng tài nguyên .dll. Trừ khi ai đó hack mã của bạn, họ sẽ không thể tìm thấy algo mã hóa được sử dụng và khóa giải mã. – Jerin

Trả lời

1

Bạn có thể sử dụng PasswordCredential api, đoạn mã:

string CredentialsName = "testing"; 
private PasswordCredential GetCredentialFromLocker() 
{ 
    PasswordCredential credential = null; 

    var vault = new PasswordVault(); 
    IReadOnlyList<PasswordCredential> credentialList = null; 
    try 
    { 
     credentialList = vault.FindAllByUserName(Username); 
    } 
    catch 
    { 
     return credential; 
    } 
    if (credentialList.Count > 0) 
    { 
     credential = credentialList[0]; 
    } 

    return credential; 
} 

public void CreatePassword(string password, string username) 
{ 
    var vault = new PasswordVault(); 
    vault.Add(new PasswordCredential(CredentialsName, username, password)); 

} 
Các vấn đề liên quan