Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Wie setze ich das Passwort für die PasswortBox?

Die Passwortbox erlaubt aus Sicherheitsgründen kein Binding auf die Eigenschaft im ViewModel. Daher ist das Passwort in der Codebehind-Datei (.xaml.cs) zu setzen.

Codeblock
languageyml
titleXaml-Datei: PasswortBox mit Namen
 <PasswordBox Name="PasswordBox" Grid.Row="2" Grid.Column="1" PasswordChanged="PasswordBox_PasswordChanged"/>


Codeblock
languagec#
titlexaml.cs-Datei: Konstruktor des Einstellung-Controls
    public partial class MySettingControl: UserControl
    {
        public MySettingControl(string a_sSettings)
        {
            InitializeComponent();
            var oViewModel = new MySettingControlViewModel(a_sSettings);
            DataContext = oViewModel;


            //Passwortbox erlaubt keine Bindings, daher hier setzen.
            PasswordBox.Password = new NetworkCredential(string.Empty, oViewModel.Password).Password;
        }


Wie aktualisiere ich das Passwort in meinem ViewModel?

...

Um nun das Passwort im ViewModel zu aktualisieren, muss auf das PasswordChanged-Event der PasswordBox zurückgegriffen werden. Das Changed-Event implementieren Sie wiederum in der CodeBehind:

Codeblock
languagec#
titlexaml.cs-Datei: PasswordChangedEvent
    public partial class MySettingControl: UserControl
    {

        private void PasswordBox_PasswordChanged(object sender, System.Windows.RoutedEventArgs e)
        {
            var oViewModel = DataContext as MySettingControlViewModel;
            if (oViewModel == null)
                return;

            oViewModel.Password = PasswordBox.SecurePassword;
        }


Passwort verschlüsseln / hashen

Geben Sie das Passwort nicht im Klartext an das WMS, sondern hashen oder verschlüsseln Sie es, beim Serialisieren Ihrer Einstellungsdaten

Beispiele (u.a. TDES):