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

时间:2016-07-23 04:39:02

标签: c# wcf authentication

我有一个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;
    }
}

1 个答案:

答案 0 :(得分:0)

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