P'ye bağlanma ile ilgili bir sorunla karşılaştım asswordBox
. Bu bir güvenlik riski gibi görünüyor ama ben MVVM kalıbı kullanıyorum, bu yüzden bunu atlamak istiyorum. Burada bazı ilginç kod buldum (kimse bu ya da benzer bir şey kullandı mı?)
http://www.wpftutorial.net/PasswordBox.html
Teknik olarak harika görünüyor, ancak şifreyi nasıl alacağımdan emin değilim.
Temelde benim LoginViewModel
için özellikleri var Username
ve Password
. Username
gayet iyi ve olduğu gibi çalışıyor TextBox
.
Yukarıdaki kodu belirtildiği gibi kullandım ve bunu girdim
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
Ben vardı PasswordBox
bir TextBox
ve Binding Path=Password
sonra benim özelliği LoginViewModel
güncellendi.
Kodum temelde ben bir var, çok basit Command
sıramı Button
. Ben bastığımda CanLogin
çağrılır ve eğer doğru dönerse çağırır Login
. Burada
benim için Username
harika çalışıyor benim özelliği kontrol görebilirsiniz .
Gelen Login
benim hizmet a kadar birlikte göndermek Username
ve Password
, Username
alınan verileri içeren benim View
ama Password
olduğuNull|Empty
private DelegateCommand loginCommand;
public string Username { get; set; }
public string Password { get; set; }
public ICommand LoginCommand
{
get
{
if (loginCommand == null)
{
loginCommand = new DelegateCommand(
Login, CanLogin );
}
return loginCommand;
}
}
private bool CanLogin()
{
return !string.IsNullOrEmpty(Username);
}
private void Login()
{
bool result = securityService.IsValidLogin(Username, Password);
if (result) { }
else { }
}
Ben bunu yapıyorum
<TextBox Text="{Binding Path=Username, UpdateSourceTrigger=PropertyChanged}"
MinWidth="180" />
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
Ben benim var TextBox
, bu sorun yok, ama benim de boştur.ViewModel
Password
Yanlış bir şey mi yapıyorum veya bir adımı kaçırıyor muyum?
Bir kesme noktası koymak ve emin yeterli kod statik yardımcı sınıf girmek ama asla güncellemeler benim Password
bölümümde ViewModel
.