/// <summary>
        ///   Coverts the SecureString to a regular String.
        /// </summary>
        /// <param name="secureString"> Object value. </param>
        /// <returns> Content of secured String. </returns>
        public static String ToUnsecureString(this SecureString secureString)
        {
            if (secureString.IsNull())
            {
                return(default(String));
            }
            var unmanagedString = IntPtr.Zero;

            try
            {
                unmanagedString = Marshal.SecureStringToGlobalAllocUnicode(secureString);
                return(Marshal.PtrToStringUni(unmanagedString));
            }
            finally
            {
                Marshal.ZeroFreeGlobalAllocUnicode(unmanagedString);
            }
        }