public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel) { // Use the WSE 3.0 security token class var option = PasswordOption.SendHashed; if (string.IsNullOrEmpty(Username) || string.IsNullOrEmpty(Password)) { option = PasswordOption.SendPlainText; } UsernameToken token = new UsernameToken(this.Username, this.Password, option); // Serialize the token to XML XmlDocument xmlDoc = new XmlDocument(); XmlElement securityToken = token.GetXml(xmlDoc); // find nonce and add EncodingType attribute for BSP compliance XmlNamespaceManager nsMgr = new XmlNamespaceManager(xmlDoc.NameTable); nsMgr.AddNamespace("wsse", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"); XmlNodeList nonces = securityToken.SelectNodes("//wsse:Nonce", nsMgr); XmlAttribute encodingAttr = xmlDoc.CreateAttribute("EncodingType"); encodingAttr.Value = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"; if (nonces.Count > 0) { nonces[0].Attributes.Append(encodingAttr); //nonces[0].Attributes[0].Value = "foo"; } // MessageHeader securityHeader = MessageHeader.CreateHeader("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", securityToken, false); request.Headers.Add(securityHeader); // complete return(Convert.DBNull); }
public object BeforeSendRequest(ref Message request, System.ServiceModel.IClientChannel channel) { UsernameToken token = new UsernameToken(Username, Password, PasswordOption.SendPlainText); XmlElement securityToken = token.GetXml(new XmlDocument()); // Modificamos el XML Generado. // var nodo = securityToken.GetElementsByTagName("wsse:Nonce").Item(0); //nodo?.RemoveAll(); MessageHeader securityHeader = MessageHeader.CreateHeader("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", securityToken, false); request.Headers.Add(securityHeader); MessageBuffer buffer = request.CreateBufferedCopy(Int32.MaxValue); request = buffer.CreateMessage(); try { System.IO.File.WriteAllText(@"c:\temp\" + DateTime.Now.ToString("MMddyyyyhhmmssfff") + ".xml", request.ToString()); } catch { } return(Convert.DBNull); }
public object BeforeSendRequest(ref Message request, System.ServiceModel.IClientChannel channel) { UsernameToken token = new UsernameToken(this.Username, this.Password, PasswordOption.SendHashed); XmlElement securityToken = token.GetXml(new XmlDocument()); MessageHeader securityHeader = MessageHeader.CreateHeader("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", securityToken, false); request.Headers.Add(securityHeader); return(Convert.DBNull); }
public object BeforeSendRequest(ref Message request, IClientChannel channel) { // Use the WSE 3.0 security token class UsernameToken token = new UsernameToken(_username, _password, PasswordOption.SendHashed); // Serialize the token to XML XmlElement securityToken = token.GetXml(new XmlDocument()); // MessageHeader securityHeader = MessageHeader.CreateHeader("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", securityToken, false); request.Headers.Add(securityHeader); // complete return(Convert.DBNull); }
public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel) { // Use a custom security token class (from Microsoft.ServiceModel.Samples.CustomToken) UsernameToken token = new UsernameToken(new UsernameInfo(Username, Password), DeviceTimeOffset); // Serialize the token to XML XmlElement securityToken = token.GetXml(new XmlDocument()); // Add header to the request MessageHeader securityHeader = MessageHeader.CreateHeader("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", securityToken, mustUnderstand: true); request.Headers.Add(securityHeader); // complete return(Convert.DBNull); }
internal static Token GenerateTokenWssUser(string Username, string Password) { //********************************** TOKEN ***************************************************** UsernameToken token = new UsernameToken(Username, Password, PasswordOption.SendPlainText); XmlElement securityToken = token.GetXml(new XmlDocument()); Token _token = new Token(); _token.user = securityToken["wsse:Username"].InnerText; _token.pass = securityToken["wsse:Password"].InnerText; _token.encoding = securityToken["wsse:Nonce"].InnerText; _token.created = securityToken["wsu:Created"].InnerText; //********************************************************************************************* return _token; }
public object BeforeSendRequest(ref Message request, System.ServiceModel.IClientChannel channel) { UsernameToken token = new UsernameToken(Username, Password, PasswordOption.SendPlainText); XmlElement securityToken = token.GetXml(new XmlDocument()); // Modificamos el XML Generado. var nodo = securityToken.GetElementsByTagName("wsse:Nonce").Item(0); nodo?.RemoveAll(); MessageHeader securityHeader = MessageHeader.CreateHeader("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", securityToken, false); request.Headers.Add(securityHeader); return(Convert.DBNull); }
public object BeforeSendRequest(ref Message request, System.ServiceModel.IClientChannel channel) { var token = new UsernameToken(Username, Password, PasswordOption.SendPlainText); var securityToken = token.GetXml(new XmlDocument()); // Modificamos el XML Generado. var nodo = securityToken.GetElementsByTagName("wsse:Nonce").Item(0); nodo?.RemoveAll(); var securityHeader = MessageHeader.CreateHeader("Security", EspacioNombres.wssecurity, securityToken, false); request.Headers.Add(securityHeader); return(Convert.DBNull); }
public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel) { string search = "<wsse:Nonce"; string newTag = "<wsse:Nonce EncodingType='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary'"; // Use the WSE 3.0 security token class UsernameToken token = new UsernameToken(this.Username, this.Password, PasswordOption.SendPlainText); // Serialize the token to XML XmlElement securityToken = token.GetXml(new XmlDocument()); securityToken.InnerXml = securityToken.InnerXml.Replace(search, newTag); // Adding UserName token MessageHeader securityHeader = MessageHeader.CreateHeader("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", securityToken, false); request.Headers.Add(securityHeader); return(Convert.DBNull); }
/// <summary> /// The before send request. /// </summary> /// <param name="request">The request.</param> /// <param name="channel">The channel.</param> /// <returns> /// The <see cref="object" />. /// </returns> public object BeforeSendRequest(ref Message request, System.ServiceModel.IClientChannel channel) { // Use the WSE 3.0 security token class var token = new UsernameToken(Username, Password, PasswordOption.SendPlainText); // Serialize the token to XML var securityToken = token.GetXml(new XmlDocument()); // build the security header var securityHeader = MessageHeader.CreateHeader("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", securityToken, false); request.Headers.Add(securityHeader); /* * if (request.Properties.ContainsKey(HttpRequestMessageProperty.Name)) * { * request.Properties.Remove(HttpRequestMessageProperty.Name); * } * request.Properties.Add(HttpRequestMessageProperty.Name, GetAuthHeader()); */ object httpRequestMessageObject; if (request.Properties.TryGetValue(HttpRequestMessageProperty.Name, out httpRequestMessageObject)) { var httpRequestMessage = httpRequestMessageObject as HttpRequestMessageProperty; if (httpRequestMessage != null) { httpRequestMessage.Headers[HttpRequestHeader.Authorization] = GetToken(); } } else { request.Properties.Add(HttpRequestMessageProperty.Name, GetAuthHeader()); } // complete return(Convert.DBNull); }
public object BeforeSendRequest(ref Message request, IClientChannel channel) { // Use the WSE 3.0 security token class UsernameToken token = new UsernameToken(this.Username, this.Password, PasswordOption.SendHashed); // Serialize the token to XML XmlElement securityToken = token.GetXml(new XmlDocument()); // MessageHeader securityHeader = MessageHeader.CreateHeader("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", securityToken, false); request.Headers.Add(securityHeader); // complete return Convert.DBNull; }
public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel) { // Use the WSE 3.0 security token class UsernameToken token = new UsernameToken(this.Username, this.Password, PasswordOption.SendPlainText); // Serialize the token to XML XmlElement securityToken = token.GetXml(new XmlDocument()); // MessageHeader securityHeader = MessageHeader.CreateHeader("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", securityToken, false); request.Headers.Add(securityHeader); MessageBuffer buffer = request.CreateBufferedCopy(Int32.MaxValue); request = buffer.CreateMessage(); try { System.IO.File.WriteAllText(@"c:\temp\testthord\" + DateTime.Now.ToString("MMddyyyyhhmmssfff") + ".xml", request.ToString()); } catch { } // complete return Convert.DBNull; }
public object BeforeSendRequest(ref Message request, IClientChannel channel) { UsernameToken authentication = new UsernameToken(remoteServiceUsername, remoteServicePassword, PasswordOption.SendPlainText); //Plain text is server requirement, we cannot do anything var webUserHeader = MessageHeader.CreateHeader("Security", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", authentication.GetXml(new XmlDocument())); request.Headers.Add(webUserHeader); return(null); }