2011-07-01 22 views
3

我正在創建一個用戶控件來包含用戶提供的信用卡信息。該控件收集帳號,到期和CCV。在Silverlight中,如何將用戶控件的內容完全隱藏起來?

我想這個控件的唯一輸出是代表加密字符串的單個屬性。

我已經有了這個屬性,並且我已經將我的控件的私有屬性設置爲綁定方式,它不使用公有屬性。所有的工作。我只是想以某種方式禁用視覺樹搜索和FindName方法從能夠從控制中消除信用卡信息。

我知道,這似乎過分熱衷,但可以有甚至有辦法做到這一點?

+0

FindName不允許訪問私有屬性,所以你應該全部設置。 – Denis

+0

它確實允許訪問我所經歷的私人_controls_。 – Jordan

回答

0

您可以嘗試不將信息存儲在控件中。如何從BackgroundWorker處理它或VisualTree沒有看到的其他東西?然後僅使用加密的字符串與控制進行通信。

+0

它是用戶輸入點。我立即加密信用卡信息並將其發送到服務器進行處理。但它必須暴露給用戶,而不是其他控件和對象。 – Jordan

0

你看過它是如何在使用Func的模板SL BussinessApplication中完成的嗎?

public string Password 
{ 
    get 
    { 
     return (this.PasswordAccessor == null) ? string.Empty : this.PasswordAccessor(); 
    } 
    set 
    { 
     this.ValidateProperty("Password", value); 

     // Do not store the password in a private field as it should not be stored in memory in plain-text. 
     // Instead, the supplied PasswordAccessor serves as the backing store for the value. 

     this.RaisePropertyChanged("Password"); 
    } 
} 

/// <summary> 
/// Gets or sets a function that returns the password. 
/// </summary> 
internal Func<string> PasswordAccessor { get; set; } 
+0

它不是我擔心的財產。我在內部將它綁定到一個私人視圖模型。我關心的是'TextBox.Text'。我知道這是過度的,但我對保護用戶數據非常熱心,即使不夠好,也足夠了。 – Jordan

+0

存儲在ViewModel中時是否加密?如果不是,它在客戶端機器上以純文本格式存儲在內存中。虛擬機是否是私人的並不重要。 –

+0

所以我需要一個自定義文本框,用戶輸入時直接加密數字。我真的希望這個從頭到尾安全。也許這是過度殺傷。我不知道。 – Jordan

相關問題