我在使用WCF消息检查程序时遇到问题,问题是我无法在消息检查程序中获取模拟用户,当我尝试使用WindowIdentity.GetCurrent()获取当前用户时,它返回AppPool \ DefaultAppPool而不是模拟用户。
另一方面如果我尝试让用户进入OperationContract,则可以使用模拟用户。
private void RequestValidationStart(ref Message request)
{
// WindowIdentity.GetCurrent() returns IIS AppPool\DefaultAppPool
// instead of impersonated user
var user = System.Security.Principal.WindowIdentity.GetCurrent();
}
如何在WCF Message Inspector中获取模拟用户?
更新
Rajesh向我请求了服务绑定和身份验证机制,这就是我配置服务的方式:
<service name="MyEndPoint">
<endpoin behaviorConfiguration="MyEndPointBehavior" binding="webHttpBinding"
bindingConfiguration="WebHttp"
contract="MyEndPointContract"></endpoint>
</service>
<webHttpBinding>
<binding name="WebHttp">
<security mode="TransportCredentialOnly">
<transport clientCertificateTrype="Basic"></transport>
</security>
</binding>
</webHttpBinding>