可以从服务实现中读取客户端凭证吗?

本文关键字:客户端 凭证 读取 服务 实现 | 更新日期: 2023-09-27 18:10:24

我通过ServiceHost的实例iHost托管一个soap web服务;身份验证配置为

HttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
iHost.Credentials.UserNameAuthentication.UserNamePasswordValidationMode 
    = UserNamePasswordValidationMode.Custom;
iHost.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator
    = new CustomValidator();

主机本身按预期工作,但是我还想从托管服务本身内部访问客户端凭据。这可以用当前的身份验证设置来实现吗?

可以从服务实现中读取客户端凭证吗?

在同事的帮助下找到答案。用户名可以通过OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.Name访问;这个问题可以看作是这个问题的重复。