C # SecureString Pergunta

Existe alguma maneira de obter o valor de um SecureString sem comprometer a segurança? Por exemplo, no código abaixo, assim que você faz PtrToStringBSTR, a string não é mais segura porque as strings são imutáveis ​​e a coleta de lixo não é determinística para strings.

IntPtr ptr = Marshal.SecureStringToBSTR(SecureString object);
string value = Marshal.PtrToStringBSTR(ptr);

E se houvesse uma maneira de obter um char [] ou byte [] da string BSTR não gerenciada? Isso significaria que a coleta de lixo é mais previsível (já que você estaria usando um char [] ou byte [] em vez de uma string? Essa suposição está correta e, em caso afirmativo, como você obteria o char [] ou byte []?

questionAnswers(5)

yourAnswerToTheQuestion