在Silverlight中,如何将用户控件的内容完全保密?

时间:2011-07-01 15:00:18

标签: silverlight user-controls

我正在创建一个用户控件来包含用户提供的信用卡信息。该控件收集帐号,到期日和CCV。

我希望此控件的唯一输出是表示加密字符串的单个属性。

我已经有了这个属性,并且我已经将我的控件设置为私有,并以不使用公共属性的方式设置绑定。一切正常。我只想以某种方式禁用可视树搜索和FindName方法,以便能够从控件中删除信用卡信息。

我知道这似乎过于热心,但是有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以尝试不将信息存储在控件中。如何从BackgroundWorker或VisualTree看不到的其他东西处理它?然后仅使用加密字符串与控件进行通信。

答案 1 :(得分: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; }