Если я правильно понимаю, это означает, что текст остается открытым, поэтому приложение защищено от эзотерических атак на память, кучу мусора или память, выгружаемую на диск. SecureString получает неуправляемые байты и потребляет один неуправляемый байт во время - тогда строка удаляется из памяти. (Исправьте меня, если я уйду!)
В ASP.NET секрет собирается в веб-форме, которая отправляется обратно в HTTPS. Но тогда объект Request возвращает все значения запроса из формы в пары значений имени и помещает их в коллекцию, например. Запросить [ "TxtPassword" ] - так что даже до того, как я могу получить строку, она уже была написана небезопасно в памяти. Хуже того, если бы я использовал элемент управления, тогда в незащищенном представлении будет больше управляемых строк в свойстве TextBox.
Чтобы что-либо сделать с помощью этой SecureString, мне нужен API, который принимает неуправляемые строки, поэтому кажется, что я не могу использовать защищенную строку для хранимого параметра proc или многое другое.
Я делаю это неправильно или это безумное поручение, чтобы попытаться использовать SecureString, а не утечка копии незакрепленной строки в управляемую память?
Переключение на OAuth или Windows auth не является вариантом.