Wednesday, April 23, 2014

Proxy sends HTTP Auth credentials in each web service request


 /// <summary>

    /// Customized proxy class for  API Web services. 

The customized proxy always sends HTTP Authentication credentials in every web service request.

    /// </summary>

    internal class EnhancedApiService : ApiServiceService

    {

        private string UserName;

        private string password;

        internal EnhancedApiService() : base() 

        {

            UserName = ConfigurationManager.AppSettings["User"];

            if (UserName == null)

                UserName = "myFantastica";

            password = ConfigurationManager.AppSettings["Password"];

            if (password == null)

                password = "myPassword";

        }

        protected override System.Net.WebRequest GetWebRequest(Uri uri)

        {

            // Get the original request

            WebRequest request = base.GetWebRequest(uri);

            // Add the authentication header

            string auth = UserName + ":" + password;

            byte[] UnicodeData = Encoding.UTF8.GetBytes(auth);

            string AuthHeader = "Basic " + Convert.ToBase64String(UnicodeData);

            request.Headers["AUTHORIZATION"] = AuthHeader;

            return request;

        }

    }

 

No comments:

Post a Comment