使用 WCF 和 DefaultCredentials 时如何处理密码更改?

Posted

技术标签:

【中文标题】使用 WCF 和 DefaultCredentials 时如何处理密码更改?【英文标题】:How do you handle a Password Change when using WCF and DefaultCredentials? 【发布时间】:2013-02-12 10:51:34 【问题描述】:

我有一个使用 WCF 代理调用服务的客户端。凭据和其他功能正常工作,但如果用户更改了他们的域密码并重新启动应用程序,那么由于此错误,我无法调用该服务:

System.ServiceModel.Security.SecurityNegotiaionException -> 服务器已拒绝客户端凭据。

System.Security.Authentication.InvalidCredentialException -> 服务器已拒绝客户端凭据。

System.componentmodel.Win32Exception -> 登录尝试失败。

显然我知道用户的凭据已更改,但如何刷新 CredentialCache 以反映新凭据以便 WCF 调用成功?

【问题讨论】:

via @Ryblex :“当您重新启动应用程序时,您是指 WCF 服务应用程序,包括 AppPool 吗?” [语法编辑] 【参考方案1】:

服务根据 AD 检查客户端上下文中的令牌。当用户登录到他的 windows 帐户时,wcf 客户端使用它收到的现有 windows 令牌。如果您更改密码,Windows 会话仍会使用旧凭据运行。您必须登录和退出 Windows 会话才能更新缓存的凭据。

【讨论】:

以上是关于使用 WCF 和 DefaultCredentials 时如何处理密码更改?的主要内容,如果未能解决你的问题,请参考以下文章

WCF

如何使用故障契约和 jquery ajax 处理 wcf 错误

使用wcf.js和node.js与Alexa联系WCF服务无法正常工作?

iOS和使用Json进行请求/响应的消费WCF服务方法

WCF、EF 和 UWP

使用 Windows 身份验证的 IIS 托管 WCF 服务和 SQL 查询