如何 return 在 c# 的 soap web 服务中自定义验证器的操作结果

How to return operation result in custom validator in soap web service at c#

我用 ws 编写了一个 wcf soap web 服务 securtiy.I 编写自定义验证器。但是我只有 problem.My 个自定义验证器 return; or send to throw exception.But 我要return操作result.I附码below.How可以吗?

  public class CustomValidator : UserNamePasswordValidator
    {
        public override void Validate(string userName, string password)
        {

            OperationResult retVal = new OperationResult()
            {
                ReturnCode = 0,
                ReturnMessage = "OK"
            };

            string s_userName = ConfigurationManager.AppSettings["username"].ToString();
            string s_password = ConfigurationManager.AppSettings["password"].ToString();
            if (userName == null || password == null)
            {
                throw new ArgumentNullException();--I dont want
                 return retVal; --It is good for me

            }

            if (userName == s_userName && password == s_password)
            {

                return;

            }
            else
            {

             //return;
               throw new FaultException("-2 Unauthorized");--I dont want this
               return retVal; --This giving problem.How can I solve?
            }

        }
    }

您的验证方法需要 return OperationResult 不无效,这是您的问题。

所以签名应该是

public override OperationResult Validate(string userName, string password)

这意味着您还需要更新您的 UserNamePasswordValidator class 以匹配此签名。