Ikat PasswordBox dengan selamat dalam mod MVVM
Dalam seni bina MVVM, sekatan PasswordBox yang mengikat secara langsung boleh menyebabkan isu keselamatan. Oleh itu, adalah penting untuk mengekalkan pendekatan yang selamat sambil mengikut prinsip MVVM.
Kaedah pelaksanaan
Daripada menggunakan penyelesaian kompleks yang boleh menjejaskan keselamatan, pertimbangkan teknologi yang selamat dan mematuhi prinsip MVVM:
ViewModel:
Tentukan atribut tulis sahaja untuk menyimpan kata laluan yang disulitkan:
<code class="language-csharp"> public SecureString SecurePassword { private get; set; }</code>
Xaml:
Tambahkan pengendali acara PasswordChanged untuk PasswordBox:
<code class="language-xml"> <PasswordBox PasswordChanged="PasswordBox_PasswordChanged"></PasswordBox></code>
Kod di belakang:
Dalam kod belakang, kendalikan acara PasswordChanged:
<code class="language-csharp"> private void PasswordBox_PasswordChanged(object sender, RoutedEventArgs e) { if (this.DataContext != null) { ((dynamic)this.DataContext).SecurePassword = ((PasswordBox)sender).SecurePassword; } }</code>
Kod ini mengemas kini sifat SecurePassword ViewModel dengan nilai SecureString dalam PasswordBox, sekali gus memastikan keselamatan.
Kelebihan
Kesimpulan
PasswordBox boleh diikat dengan selamat dalam MVVM dengan mengemas kini sifat ViewModel secara manual menggunakan pengendali acara dari kod belakang. Pendekatan ini melindungi kerahsiaan kata laluan sambil mematuhi corak reka bentuk MVVM.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengikat PasswordBox dengan Selamat kepada ViewModel Saya dalam MVVM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!