Я опасаюсь, что никто не упоминал о том, что конструктор SecureString принимает указатель на массив символов.
public static SecureString ToSecureString(this string source)
{
char[] charArray = source.ToCharArray();
unsafe
{
fixed (char* chars = charArray)
{
return new SecureString(chars, charArray.Length);
}
}
}
Обратите внимание, что этот код работает только с опцией компилятора /unsafe
.Чтобы установить этот параметр, перейдите в свойства проекта, перейдите на вкладку «Сборка» и установите флажок «Разрешить небезопасный код».