protected override void WriteTokenCore(XmlWriter writer, SecurityToken token) { string str; byte[] numArray; if (!(token is SimpleWebSecurityToken)) { this.innerSerializer.WriteToken(writer, token); return; } SimpleWebSecurityTokenSerializer.WriteBinaryCore(token, out str, out numArray); if (numArray == null) { throw new ArgumentNullException(SRClient.NullRawDataInToken); } writer.WriteStartElement("wsse", "BinarySecurityToken", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"); if (str != null) { writer.WriteAttributeString("wsu", "Id", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd", str); } writer.WriteAttributeString("ValueType", null, "http://schemas.xmlsoap.org/ws/2009/11/swt-token-profile-1.0"); writer.WriteAttributeString("EncodingType", null, "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"); writer.WriteBase64(numArray, 0, (int)numArray.Length); writer.WriteEndElement(); }
protected override bool CanReadTokenCore(XmlReader reader) { if (SimpleWebSecurityTokenSerializer.IsSimpleWebSecurityToken(reader)) { return(true); } return(this.innerSerializer.CanReadToken(reader)); }
protected override SecurityToken ReadTokenCore(XmlReader reader, SecurityTokenResolver tokenResolver) { if (!SimpleWebSecurityTokenSerializer.IsSimpleWebSecurityToken(reader)) { return(this.innerSerializer.ReadToken(reader, tokenResolver)); } XmlDictionaryReader xmlDictionaryReader = XmlDictionaryReader.CreateDictionaryReader(reader); string attribute = xmlDictionaryReader.GetAttribute("Id", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"); string str = xmlDictionaryReader.GetAttribute("EncodingType", null); if (str != null && !(str == "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary")) { throw new NotSupportedException(SRClient.UnsupportedEncodingType); } return(SimpleWebSecurityTokenSerializer.ReadBinaryCore(attribute, xmlDictionaryReader.ReadElementContentAsBase64())); }
static SimpleWebSecurityTokenSerializer() { SimpleWebSecurityTokenSerializer.DefaultInstance = new SimpleWebSecurityTokenSerializer(); }