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