Как работать с SecureString? - C#
Формулировка задачи:
Скажите в чем смысл этого класса? Строку в него преобразовать еще можно, но вот обратно вообще никак не выходит... Ну т.е. я видел в интернете всякие способы через Marshal, но неужели это так задумано? Может быть (как я понял) ее даже и не надо переводить в обычную строку, но как ее тогда хотя бы в БД добавить? И как потом сравнить 2 таких строки? Кажется перегруженного сравнения там тоже нет... Что толку с нее?
Решение задачи: «Как работать с SecureString?»
textual
Листинг программы
// System.Windows.Controls.PasswordBox /// <summary>Возвращает или задает пароль, содержащийся в <see cref="T:System.Windows.Controls.PasswordBox" />.</summary> /// <returns>Строковое представление пароля, содержащегося в данный момент в элементе <see cref="T:System.Windows.Controls.PasswordBox" />.Значением по умолчанию является <see cref="F:System.String.Empty" />.</returns> [DefaultValue(""), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public unsafe string Password { [SecurityCritical] get { string result; using (SecureString securePassword = this.SecurePassword) { IntPtr intPtr = Marshal.SecureStringToBSTR(securePassword); try { result = new string((char*)((void*)intPtr)); } finally { Marshal.ZeroFreeBSTR(intPtr); } } return result; } [SecurityCritical] set { if (value == null) { value = string.Empty; } using (SecureString secureString = new SecureString()) { for (int i = 0; i < value.Length; i++) { secureString.AppendChar(value[i]); } this.SetSecurePassword(secureString); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д