メモなので、確認はしていません。m(_ _)m

1.WCFサービスで偽装の設定をする

サービスメソッドで次のようにOperationBehavior.Impersonationの値を設定します。ImpersonationOption.Requiredで偽装が行われることを指定します。他の値Allowed,NotAllowedについてはMSDNのヘルプを参照して下さい。

     [PrincipalPermission(SecurityAction.Demand, Role="WCFTestUsers")]
        [OperationBehavior(Impersonation=System.ServiceModel.ImpersonationOption.Required)]
        public List<int> GetProductIDs()
        {
            List<int> productIDs = new List<int>();
            ...
        }

 サービスメソッドすべてで偽装を行う場合はServiceAuthorizationBehavior.ImpersonateCallerForAllOperationsをtrueにします。構成ファイルで設定するには以下のように指定します。

<system.serviceModel>
    ....
    <services>
      <service behaviorConfiguration="ProductServiceBehavior" name="WCFSample.ProductService.ProductService">
        <endpoint address="http://localhost:8056/ProductService" binding="basicHttpBinding"
          bindingConfiguration="ProductServiceBasicHttpBinding" contract="WCFSample.ProductService.IProductService" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ProductServiceBehavior">
          <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8056/ProductService/Mex" />
          <serviceAuthorization impersonateCallerForAllOperations="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

 2.WCFクライアントで偽装のレベルを指定する

クライアントアプリケーションの構成ファイルで偽装のレベルを指定できます。WindowsClientCredential.AllowedImpersonationLevelを設定しますTokenImpersonationLevel列挙型の説明はMSDNを参照して下さい。構成ファイル上で設定するには次のように行います。

<system.serviceModel>
    ...
    <client>
      <endpoint address="http://localhost:8056/ProductService" binding="basicHttpBinding"
        bindingConfiguration="BasicHttpBinding_ProductService" contract="WCFSample.Client.Proxy.ProductService"
        name="BasicHttpBinding_ProductService" behaviorConfiguration="ProductServiceBehavior" />
    </client>
    <behaviors>
      <endpointBehaviors>
        <behavior name="ProductServiceBehavior">
          <clientCredentials>
            <windows allowedImpersonationLevel="Delegation"/>
          </clientCredentials>
        </behavior>
      </endpointBehaviors>
    </behaviors>
  </system.serviceModel>

 偽装についてのメモは終了です。設定値に関する詳細はMSDNを参照して下さい。

間違い、ご指摘等ありましたら連絡くださいませ。追記:ためしてみたらうまくいかないっぽいので、調べたら書き直します。