我有一个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;
}
}
答案 0 :(得分:0)
您可以使用clientCredentials端点行为来指定客户端凭据,例如证书。您必须创建自定义扩展。但是你考虑暂时关闭身份验证吗?毕竟,测试客户端仅用于测试目的。