How to create custom binding using WSHttpBinding security and GZip compression?

I ran into a problem here. I am doing a client / server project, which is a WCF web service causing data to be received. Prior to the huge transfer data, I have to change my user binding binding programmatically (and not according to the configuration file.)

I am creating a new user binding that defines the binding as well as the user binding. Class Example:

public class MyCustomBinding : CustomBinding    

and override the BindingElementCollection function:

public override BindingElementCollection CreateBindingElements()
{
   WSHttpBinding wSHttpBinding = new WSHttpBinding("RMSKeberosBinding"); //this is to load the configuration from app.config. because i want to copy the setting of wsHttpConfig to my custom binding.

   BindingElementCollection wSHttpBindingElementCollection = wSHttpBinding.CreateBindingElements();

   TransactionFlowBindingElement transactionFlowBindingElement = wSHttpBindingElementCollection.Remove<TransactionFlowBindingElement>();
   SymmetricSecurityBindingElement securityElement = wSHttpBindingElementCollection.Remove<SymmetricSecurityBindingElement>();
   MessageEncodingBindingElement textElement = wSHttpBindingElementCollection.Remove<MessageEncodingBindingElement>();
   HttpTransportBindingElement transportElement = wSHttpBindingElementCollection.Remove<HttpTransportBindingElement>();

   GZipMessageEncodingBindingElement gzipElement = new GZipMessageEncodingBindingElement(); // this is from microsoft sample. i want to add gzip as a compress to my message.

   BindingElementCollection newCol = new BindingElementCollection();
   newCol.Add(transactionFlowBindingElement);
   newCol.Add(securityElement);
   newCol.Add(gzipElement);
   newCo .Add(transElement);
   return newCol;
}

, , wshttpbinding gzip . . , SymmetricSecurityBindingElement WSHttpBinding. ? , wshttpbinding, gzip .

+5

All Articles