private void WriteHeader(XmlDictionaryWriter writer) { var nonce = new byte[64]; RandomNumberGenerator.Create().GetBytes(nonce); // string created = DateTime.Now.ToString("yyyy-MM-ddThh:mm:ssZ"); string created = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ"); writer.WriteStartElement("wsse", "UsernameToken", null); writer.WriteAttributeString("wsu:Id", "UsernameToken-1"); writer.WriteStartElement("wsse", "Username", null); writer.WriteString(SystemUser); writer.WriteEndElement();//End Username writer.WriteStartElement("wsse", "Password", null); writer.WriteAttributeString("Type", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest"); writer.WriteString(ComputePasswordDigest(SystemPassword, nonce, created)); writer.WriteEndElement();//End Password writer.WriteStartElement("wsse", "Nonce", null); writer.WriteAttributeString("EncodingType", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"); writer.WriteBase64(nonce, 0, nonce.Length); writer.WriteEndElement();//End Nonce writer.WriteStartElement("wsu", "Created", null); writer.WriteString(created); writer.WriteEndElement(); //End Created writer.WriteEndElement(); //End UsernameToken writer.Flush(); var test = writer.ToString(); }
/// <summary> /// Serializes object of specified type with DataContract Serializer /// </summary> /// <typeparam name="ObjetType">Type of serialized object</typeparam> /// <param name="data">Object to serialize</param> /// <returns>Returns object serialized into string.</returns> public static string Serialize <T>(T data) { using (MemoryStream MStream = new MemoryStream()) { using (XmlDictionaryWriter XDWriter = XmlDictionaryWriter.CreateTextWriter(MStream, Encoding.UTF8)) { DataContractSerializer DCSerializaer = new DataContractSerializer(typeof(T)); DCSerializaer.WriteObject(XDWriter, data); XDWriter.Flush(); string output = XDWriter.ToString(); return(output); } } }