public static string ToRawString(this SecureString sstr) { IntPtr valuePtr = IntPtr.Zero; try { valuePtr = SecureStringMarshal.SecureStringToGlobalAllocUnicode(sstr); return(Marshal.PtrToStringUni(valuePtr)); } finally { Marshal.ZeroFreeGlobalAllocUnicode(valuePtr); } }
public static string ToUnsecureString(this SecureString str) { if (str == null) { return(null); } var unmanagedStr = IntPtr.Zero; try { unmanagedStr = SecureStringMarshal.SecureStringToGlobalAllocUnicode(str); return(Marshal.PtrToStringUni(unmanagedStr)); } finally { Marshal.ZeroFreeGlobalAllocUnicode(unmanagedStr); } }