2012-03-20 69 views
0

我正在使用自定义UserNamePasswordValidator进行用户身份验证。以下是代码,它运作良好。UserNamePasswordValidator如何从SOAP头中读取用户名密码?

我想了解这个方法是如何从SOAP头中的UserNameToken获取用户名和密码的。

public class DistributorValidator : UserNamePasswordValidator 
    { 
     public override void Validate(string userName, string password) 
     { 
      if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password)) 
      { 
       throw new FaultException("Username and password required", new FaultCode("9001")) 
................ 

回答

0

你应该打开WCF日志(或使用Fiddler)看到SOAP消息的样子。在那里你会看到令牌。 WCF有一个非常复杂的模型来从消息中提取证书。有一个用于安全头的(de)序列化程序,每个标记(用户名,x.509等)都有自己的解串器。

相关问题