向我的WCF服务发出SOAP请求。如何访问请求的Envelope.Header.Security.UserNameToken.Username
字段中使用的用户名?我正在使用自定义UserNamePasswordValidator来检查凭据。
在我的例子中,System.ServiceModel.ServiceSecurityContext.Current.PrimaryIdentity.Name
持有UserNamePasswordValidator.Valide方法中使用的用户名(来自请求的SOAP标头(。它可以在WCF服务类/方法中访问。
public class Service1 : IService1
{
public Response ServiceMethod(Request request)
{
string userName = System.ServiceModel.ServiceSecurityContext.Current.PrimaryIdentity.Name;
// ...
}
}