How to convert SecureString to System.String?
Use the System.Runtime.InteropServices.Marshal class: String SecureStringToString(SecureString value) { IntPtr valuePtr = IntPtr.Zero; try { valuePtr = Marshal.SecureStringToGlobalAllocUnicode(value); return Marshal.PtrToStringUni(valuePtr); } finally { Marshal.ZeroFreeGlobalAllocUnicode(valuePtr); } } If you want to avoid creating a managed string object, you can access the raw data using Marshal.ReadInt16(IntPtr, Int32): void HandleSecureString(SecureString value) { IntPtr valuePtr = IntPtr.Zero; try { valuePtr … Read more