我们构建的系统允许用户在创建WCF通道后更改其密码 - 是否有办法更改发送到服务器的凭据而无需重新创建通道?
提前谢谢。
答案 0 :(得分:0)
如果已使用该频道,则凭据将变为只读且无法更改(如果修改了凭据,则会引发异常)。
如果尚未使用该频道(并且相关频道工厂的状态为“已创建”或“正在打开”),则可以通过以下方式更新凭据:
public void UpdateCredentials<T>(ClientBase<T> client, string username, string password)
{
client.ClientCredentials.UserName.UserName = username;
client.ClientCredentials.UserName.Password = password;
}
但是,根据您的问题,我猜测该频道已被使用过。在这种情况下,你必须重新创建我害怕的频道。