从WCF测试客户端运行WCF服务时指定客户端凭据

本文关键字:客户端 WCF 服务 测试 运行 | 更新日期: 2023-09-27 17:58:22

我有一个WCF服务,我习惯于从WCF测试客户端运行它。现在,我已经将带有用户名和密码的自定义身份验证添加到我的服务中,并想知道如何传递用户名和密码?仍然可以通过WCF测试客户端指定客户端凭据吗?

以下是我的自定义验证器和用户帐户类:

public class CustomUserValidator : UserNamePasswordValidator
{
    public override void Validate(string userName, string password)
    {
        if (null == userName || null == password)
        {
            throw new ArgumentNullException();
        }
        UserAccountModel uam = new UserAccountModel();
        if(uam.Login(userName, password))
            return;
        throw new SecurityTokenException("User invalid.");
    }
}

public class UserAccountModel
{
    private List<UserAccount> listUserAccounts = new List<UserAccount>();
    public UserAccountModel()
    {
        using (UserAccountContext ctx = new UserAccountContext())
        {
            listUserAccounts = ctx.UserAccounts.ToList();
        }
    }
    public bool Login(string _usrname, string _pwd)
    {
        return listUserAccounts.Count(lua => lua.Username.Equals(_usrname) && lua.Pwd.Equals(_pwd)) > 0;
    }
}

从WCF测试客户端运行WCF服务时指定客户端凭据

您可以使用clientCredentials端点行为来指定客户端凭据,例如证书。您必须创建一个自定义扩展。但是您是否考虑过暂时关闭身份验证?毕竟,测试客户端仅用于测试目的。