每次客户端调用我的WCF服务时,我都希望将该请求记录到数据库中,该数据库将包含该客户端的用户名等详细信息。
我目前正在使用我的WCF服务进行自定义身份验证。
每次调用我的WCF服务时,是否有可能以某种方式获取调用者的用户名,或者每次调用时是否都会传递用户名?
答案 0 :(得分:1)
要检索调用方的用户名,可以从System.IdentityModel.Selectors.UserNamePasswordValidator继承,并根据需要覆盖Validate Method。 对于每个呼叫实例化模式,WCF为每个呼叫创建新的服务实例,因此每个呼叫都应使用正确的凭证进行身份验证。我认为您可以在打开代理时指定凭据一次,并且该代理每次请求对服务进行操作时都会显示凭据(直到代理关闭并且您一起创建新代理)。 此链接可能很有用 - http://www.codeproject.com/Articles/96028/WCF-Service-with-custom-username-password-authenti