title: Customizing ServiceAuthorizationManager for WCF Issue
body: <p>I have created custom ServiceAuthorizationManager as "CustomUserNamePasswordValidator" for my WCF project. below is the snippet of my project. I want my wcf to call up this authorication class before it actually start calling on WCF API but this is not happening. My "Login" WCF API is calling paraller to this authorization class. so when there is call by client to Login it calls both 
  "CustomUserNamePasswordValidator" and Login method simultaneously. </p>
  
  <p><strong>Authorization Class</strong></p>
  
  <pre><code> public class CustomUserNamePasswordValidator : ServiceAuthorizationManager
   {
      HttpRequestMessageProperty httpProperties;
      string operationName;
  
      protected override bool CheckAccessCore(OperationContext operationContext)
      {
          operationName = GetOperationName(operationContext);
          httpProperties = (HttpRequestMessageProperty)operationContext.IncomingMessageProperties["httpRequest"];
          string authHeader = httpProperties.Headers[HttpRequestHeader.Authorization];
  
          string subno = string.Empty;
          string password = string.Empty;
          string version = string.Empty;
          string credntialType = string.Empty;
  
              string[] credentials = authHeader.Split(':');
              credntialType = credentials[0];
  
                 password = credentials[1];
  
                  if (!AuthorizeUser(password))
                  {
                      throw new ArgumentException("401:Token invalid or expired.(0x000)");                        
                  }
              }
         }
  
       private int AuthenticateUser(string subno, string pin, string version)
        {
        }
    }
  </code></pre>
  
  <p><strong>WCF Client Service Snippet</strong></p>
  
  <pre><code>public class ClientService : IClientService
  {
      public wsLoginResult LoginUser()
      {
              HttpRequestMessageProperty httpReqProps = (HttpRequestMessageProperty)OperationContext.Current.IncomingMessageProperties["httpRequest"];
              string res = httpReqProps.Headers[HttpRequestHeader.Authorization];
  
              foreach (var item in res.Split(':'))                
                  ActivityLog("Activity", "Login Steps", item, item); 
      }
  }
  </code></pre>
  
  <p><strong>Web.Config Snippet</strong></p>
  
  <pre><code> &lt;?xml version="1.0"?&gt;
  &lt;configuration&gt;
  &lt;connectionStrings&gt;
   &lt;add name="wmas_subsConnectionString" connectionString="Data Source=WT;Initial Catalog=wmas;User ID=sa;Password=ra3?" providerName="System.Data.SqlClient"/&gt;
   &lt;/connectionStrings&gt;
   &lt;system.web&gt;
    &lt;compilation targetFramework="4.5" debug="true"/&gt;
    &lt;httpRuntime targetFramework="4.5"/&gt;
   &lt;/system.web&gt;
   &lt;system.serviceModel&gt;
    &lt;client&gt;
    &lt;endpoint  address="http://192.168.1.12:7002/MobileApplicationWS/MobileApplicationApiWSImplService"
              binding="basicHttpBinding" bindingConfiguration="MobileApplicationApiWSPortBinding"
              contract="VASService.MobileApplicationApiWS"
              name="MobileApplicationApiWSPort" /&gt;
  
   &lt;/client&gt;
   &lt;services&gt;
    &lt;service name="ClientService.ClientService" behaviorConfiguration="ClientService.ServiceBehavior"&gt;
      &lt;endpoint address=""
                binding="webHttpBinding" bindingConfiguration="webHttpBindingConfiguration"
                contract="ClientService.IClientService" behaviorConfiguration="webBehaviour"/&gt;
      &lt;endpoint address="stream"
                binding="webHttpBinding" bindingConfiguration="webHttpBindingConfigurationStreamed"
                contract="ClientService.IClientService" behaviorConfiguration="webBehaviour"/&gt;
      &lt;endpoint address="mex"
                binding="mexHttpsBinding"
                contract="IMetadataExchange" /&gt;        
     &lt;/service&gt;
   &lt;/services&gt;
   &lt;bindings&gt;
    &lt;basicHttpBinding&gt;
      &lt;binding name="MobileApplicationApiWSPortBinding" /&gt;
    &lt;/basicHttpBinding&gt;
    &lt;webHttpBinding&gt;
      &lt;binding name="webHttpBindingConfiguration" /&gt;
      &lt;binding name="webHttpBindingConfigurationStreamed" transferMode="StreamedResponse" /&gt;
    &lt;/webHttpBinding&gt;
    &lt;/bindings&gt;
    &lt;behaviors&gt;
    &lt;serviceBehaviors&gt;
      &lt;behavior name="ClientService.ServiceBehavior"&gt;
        &lt;serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/&gt;
        &lt;serviceDebug includeExceptionDetailInFaults="true"/&gt;
        &lt;serviceAuthorization serviceAuthorizationManagerType="ClientService.CustomUserNamePasswordValidator, ClientService" /&gt;
      &lt;/behavior&gt;
    &lt;/serviceBehaviors&gt;
    &lt;endpointBehaviors&gt;
      &lt;behavior name="webBehaviour"&gt;
        &lt;webHttp/&gt;
      &lt;/behavior&gt;
    &lt;/endpointBehaviors&gt;
   &lt;/behaviors&gt;
   &lt;protocolMapping&gt;
    &lt;add binding="basicHttpsBinding" scheme="https"/&gt;
    &lt;/protocolMapping&gt;
    &lt;serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/&gt;
    &lt;/system.serviceModel&gt;
   &lt;system.webServer&gt;
   &lt;modules runAllManagedModulesForAllRequests="true"/&gt;
   &lt;directoryBrowse enabled="true"/&gt;
   &lt;/system.webServer&gt;
    &lt;/configuration&gt;
  </code></pre>