在WCF PerCall服务上保留客户端的用户名



每次客户端调用我的WCF服务时,我都希望将该请求记录到数据库中,其中将包括该客户端的用户名等详细信息。

我目前正在对WCF服务使用自定义身份验证。

是否可以在每次调用WCF服务时以某种方式获取调用方的用户名,或者每次调用时都要传递用户名?

若要检索调用方的用户名,可以从System.IdentityModel.Selectors.UserNamePasswordValidator继承,并根据需要重写Validate Method。至于每调用实例化模式,WCF为每个调用创建新的服务实例,因此您的每个调用都应该使用正确的凭据进行身份验证。我认为您可以在打开代理时指定一次凭据,并且该代理每次向服务请求操作时都会显示凭据(直到关闭代理并一起创建新代理为止)。此链接可能很有用-http://www.codeproject.com/Articles/96028/WCF-Service-with-custom-username-password-authenti

最新更新