在创建WCF通道后更改客户端凭据

时间:2010-11-19 08:06:29

标签: wcf authentication credentials channelfactory

我们构建的系统允许用户在创建WCF通道后更改其密码 - 是否有办法更改发送到服务器的凭据而无需重新创建通道?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果已使用该频道,则凭据将变为只读且无法更改(如果修改了凭据,则会引发异常)。

如果尚未使用该频道(并且相关频道工厂的状态为“已创建”或“正在打开”),则可以通过以下方式更新凭据:

public void UpdateCredentials<T>(ClientBase<T> client, string username, string password)
{
  client.ClientCredentials.UserName.UserName = username;
  client.ClientCredentials.UserName.Password = password;
}

但是,根据您的问题,我猜测该频道已被使用过。在这种情况下,你必须重新创建我害怕的频道。