Есть ли способ получить значение SecureString без обеспечения безопасности? Например, в приведенном ниже коде, как только вы выполняете PtrToStringBSTR, строка больше не защищена, потому что строки неизменяемы, а сбор мусора является недетерминированным для строк.
IntPtr ptr = Marshal.SecureStringToBSTR(SecureString object);
string value = Marshal.PtrToStringBSTR(ptr);
Что делать, если есть способ получить char [] или byte [] неуправляемой строки BSTR? Будет ли это означать, что сбор мусора более предсказуем (поскольку вы использовали бы char [] или byte [], а не строку? Правильно ли это предположение, и если да, то как вы вернете char [] или байт []?