Pytanie C # SecureString

Czy istnieje sposób na uzyskanie wartości SecureString bez zabezpieczenia? Na przykład w poniższym kodzie, gdy tylko wykonasz PtrToStringBSTR, ciąg nie jest już bezpieczny, ponieważ ciągi są niezmienne, a zbieranie śmieci nie jest deterministyczne dla ciągów.

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

Co jeśli istnieje sposób na uzyskanie char [] lub byte [] niezarządzanego łańcucha BSTR? Czy oznaczałoby to, że zbieranie śmieci jest bardziej przewidywalne (ponieważ używałbyś char [] lub byte [] zamiast łańcucha? Czy to założenie jest poprawne, a jeśli tak, to jak odzyskałbyś char [] lub bajt []?

questionAnswers(5)

yourAnswerToTheQuestion